KR101463856B1 - System and method for non-disruptive replacing of application in java based system - Google Patents

System and method for non-disruptive replacing of application in java based system Download PDF

Info

Publication number
KR101463856B1
KR101463856B1 KR1020120101526A KR20120101526A KR101463856B1 KR 101463856 B1 KR101463856 B1 KR 101463856B1 KR 1020120101526 A KR1020120101526 A KR 1020120101526A KR 20120101526 A KR20120101526 A KR 20120101526A KR 101463856 B1 KR101463856 B1 KR 101463856B1
Authority
KR
South Korea
Prior art keywords
application program
class loader
management unit
replaceable
application
Prior art date
Application number
KR1020120101526A
Other languages
Korean (ko)
Other versions
KR20140035103A (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 KR1020120101526A priority Critical patent/KR101463856B1/en
Publication of KR20140035103A publication Critical patent/KR20140035103A/en
Application granted granted Critical
Publication of KR101463856B1 publication Critical patent/KR101463856B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

본 발명은 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템 및 그 방법에 관한 것으로서, 변경된 응용프로그램의 반영과정에서 발생하는 서비스의 중단상태가 없도록 하기 위한 것으로, 자바 어플리케이션 서버에서 현재 서비스 중인 응용프로그램의 버전과, 새로 반영될 응용프로그램의 버전을 서비스 가능한 상태로 준비하다가, 시스템 관리자의 명령에 따라 새로 반영될 버전의 응용프로그램을 즉각 반영하거나, 반영 취소할 수 있도록 하며, 이미 반영 완료된 새로운 버전의 응용프로그램에 대해서도 이전 버전의 응용프로그램으로 되돌 수 있는 시스템 및 방법을 제공함에 그 목적이 있다. The present invention relates to a system and method for non-stop replacement of an application program in a Java-based business system, in order to prevent a service interruption state occurring in a process of reflecting a changed application program, The version of the application and the version of the application to be newly reflected are prepared in a serviceable state so that the application of the version to be newly reflected can be immediately reflected or canceled according to the command of the system administrator, The present invention also provides a system and method for reverting a version of an application to a previous version of the application.

Description

자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템 및 그 방법{SYSTEM AND METHOD FOR NON-DISRUPTIVE REPLACING OF APPLICATION IN JAVA BASED SYSTEM} TECHNICAL FIELD [0001] The present invention relates to a system and a method for non-disruptive replacement of an application program in a Java-based business system,

본 발명은 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템 및 그 방법에 관한 것으로서, 더욱 상세하게는 자바 개발언어로 구축된 전산 업무시스템에서 변경된 응용프로그램을 반영하기 위해 전체 시스템 또는 대상 응용프로그램의 가동을 중단하는 절차 없이, 실행중인 시스템에 변경된 응용프로그램을 즉각 반영하거나, 반영과정에서 대상 응용프로그램의 오류가 발견된 경우, 반영절차를 취소 또는 응용프로그램의 이력정보를 이용하여 특정 이력의 상태로 되돌릴 수 있는 시스템 및 그 방법에 관한 것이다. The present invention relates to a system and method for continuously changing an application program in a Java-based business system, and more particularly, to a system and method for continuously changing an application program in a Java- If an error is detected in the target application program in the process of reflecting the changed application program immediately, or if the reflection procedure is canceled or the history information of the application program is used without any procedure for stopping the operation of the program, State and a method thereof.

종래, 응용프로그램과 관련된 클래스들을 로딩 및 언로딩 하는 기술과 관련해서는, 한국공개특허 10-2002-0035558호(이하, '선행문헌') 외에 다수 출원 및 공개되어 있다. Conventionally, there are many applications and disclosures related to technology for loading and unloading classes related to an application program in addition to Korean Patent Laid-Open No. 10-2002-0035558 (hereinafter referred to as 'prior art').

선행문헌에 따른 방법은, 응용프로그램과 관련된 클래스를 로딩(loading) 및 언로딩(unloading)하는 방법으로서, 상기 방법은, - 응용프로그램에 대한 클래스로더(class loader)를 구축하고, 이때 클래스로더는 응용프로그램과 관련된 클래스를 로딩하는 구조를 가지며, - 클래스로더를 이용하여 응용프로그램과 관련된 한 개 이상의 클래스를 로딩시키며, 그래서 클래스로더가 한 개 이상 클래스에 대한기준(reference)을 유지관리하며, - 클래스로더가 도달불가(unreachable)에 이르도록 응용프로그램에 대한 클래스로더를 참고-중지(de-referencing)하는 단계를 포함한다.A method according to the preceding document is a method for loading and unloading a class associated with an application program, the method comprising the steps of: building a class loader for an application program, - Loads one or more classes associated with an application using a class loader so that the class loader maintains references to one or more classes and - And referencing the class loader for the application so that the class loader is unreachable.

일반적으로, 운영 중인 업무시스템에서 일부 응용프로그램의 오류가 발생하거나 변경이 필요한 경우, 운영시스템의 관리자는 자바 어플리케이션 서버를 중단한 후 수정된 응용프로그램의 라이브러리를 변경하여 시스템을 재가동하여야한다. Generally, if some application programs fail or need to be changed in an active business system, the administrator of the operating system must stop the Java application server and change the library of the modified application program to restart the system.

또는, 어플리케이션 서버를 중단하지 않은 상태에서, 대상 응용프로그램을 제거하고, 수정된 응용프로그램을 재배포하여야한다. Alternatively, without interrupting the application server, the target application must be removed and the modified application redistributed.

이 두 가지 방법 모두 교체가 진행 중인 상태에서는 응용프로그램은 사용자 요청을 처리할 수 없게 된다. 또한, 최종적으로 반영된 응용프로그램에서 오류가 발생하는 경우, 이를 즉각적으로 이전 상태로 되돌릴 수 방법이 없으므로 응용프로그램의 서비스의 중단상태가 지속된다.In both of these ways, the application will not be able to process user requests while the replacement is in progress. In addition, if there is an error in the finally reflected application, there is no way to instantly return it to the previous state, so the service of the application is suspended.

본 발명은 상기와 같이 변경된 응용프로그램의 반영과정에서 발생하는 서비스의 중단상태가 없도록 하기 위한 것으로, 자바 어플리케이션 서버에서 현재 서비스 중인 응용프로그램의 버전과, 새로 반영될 응용프로그램의 버전을 서비스 가능한 상태로 준비하다가, 시스템 관리자의 명령에 따라 새로 반영될 버전의 응용프로그램을 즉각 반영하거나, 반영 취소할 수 있도록 하며, 이미 반영 완료된 새로운 버전의 응용프로그램에 대해서도 이전 버전의 응용프로그램으로 되돌 수 있는 시스템 및 방법을 제공함에 그 목적이 있다. In the present invention, there is no interruption of service occurring in the reflecting process of the changed application program. In the Java application server, a version of an application program currently being serviced and a version of an application program to be newly reflected are available A system and method that can instantly reflect or reflect the application of the version to be newly reflected according to a command of the system administrator and can return the application program of the new version already reflected to the previous version to the application program The present invention has been made in view of the above problems.

이러한 기술적 과제를 달성하기 위한 본 발명은 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템에 관한 것으로서, 사용자 컴퓨터로부터 응용프로그램에 대한 사용 요청신호(서비스 요청신호)를 수신한 경우, 응용프로그램의 이름과 클라이언트의 아이피주소를 포함하는 사용자 식별정보를 추출하며, 추출된 사용자 식별정보를 이용하여 응용프로그램 관리부로 해당 사용자 컴퓨터가 사용할 응용프로그램을 요청하고, 응용프로그램 관리부로부터 전달된 응용프로그램을 사용자 컴퓨터로 전달하는 서비스 처리부; 상기 관리자 컴퓨터로부터 수정된 응용프로그램의 예비반영(predeploy), 최종반영(deploy), 취소(throwaway)를 포함하는 명령을 수신하여 응용프로그램 관리부가 이를 수행하도록 처리하는 관리명령 처리부; 응용프로그램을 관리하여, 응용프로그램의 이름을 기준으로 상기 서비스 처리부로 사용자 컴퓨터가 사용할 응용프로그램을 전달하며, 최종반영(deploy) 상태의 응용프로그램집합과 예비반영(predeploy) 상태의 응용프로그램집합을 구성하여 응용프로그램을 관리하는 응용프로그램 관리부; 및 교체 가능한 클래스로더들을 관리하여 응용프로그램이 교체될 때, 해당 응용프로그램에서 사용할 교체 가능한 클래스로더를 생성하여 전달하며, 응용프로그램들의 참조관계를 파악하여, 참조관계에 따라 함께 변경되어야 하는 응용프로그램들의 목록을 생성하고, 대상 응용프로그램들의 참조관계에 따라 교체 가능한 클래스로더들을 교체하고, 참조관계를 재설정함으로써 응용프로그램의 변경이 정확히 반영될 수 있도록 하는 교체 가능한 클래스로더 관리부; 를 포함하는 어플리케이션 서버; 를 포함한다. According to an aspect of the present invention, there is provided a system for continuously replacing an application program in a Java-based business system. When a use request signal (service request signal) for an application program is received from a user computer, Extracts user identification information including the name of the client and the IP address of the client, requests the application program to be used by the user computer by using the extracted user identification information, A service processing unit for delivering the program to a computer; An administrative command processing unit for receiving an instruction including a predeployment, a final reflection, and a throwaway of the modified application program from the manager computer and processing the application program management unit to perform the instruction; An application program is managed, and an application program to be used by the user computer is transferred to the service processing unit based on the name of the application program, and an application program set in the final deployed state and an application program set in the predeploy state are configured An application program management unit for managing an application program; And class loaders that can be replaced. When a program is replaced, a replaceable class loader to be used by the application program is generated and transmitted. The application program references are identified, and application programs A replaceable class loader manager for generating a list, replacing replaceable class loaders according to a reference relationship of the target application programs, and resetting a reference relationship so that the change of the application program can be accurately reflected; An application server; .

상기와 같은 본 발명에 따르면, 응용프로그램의 오류 또는 수정필요에 의해 응용프로그램의 내용을 수정하여 반영할 때 발생하는 서비스의 중단을 완전히 방지할 수 있으며, 수정하여 이미 반영된 응용프로그램에 대해서도 이력정보를 이용하여 서비스 중단 없이 특정 버전으로 되돌릴 수 있다. 즉, 이러한 방법을 통해 운영시스템의 관리자는 시스템 운영상 긴급한 응용프로그램의 변경에 대해서 서비스를 중단하지 않고 이를 반영할 수 있는 효과가 있다. According to the present invention as described above, it is possible to completely prevent the service interruption caused when the contents of the application program are corrected by reflecting the error or correction of the application program, and it is possible to prevent the interruption of the service, You can revert to a specific version without interruption. That is, through this method, the administrator of the operating system has the effect of reflecting the change of the urgent application program in the system operation without interrupting the service.

도 1 은 본 발명의 일실시예에 따른 서비스 무중단 응용프로그램 교체를 위한 시스템을 개념적으로 도시한 전체 구성도.
도 2 는 본 발명의 일실시예에 따른 참조관계가 없는 응용프로그램에서의 클래스 로딩과정을 보여주는 일예시도.
도 3 은 본 발명의 일실시예에 따른 참조관계가 있는 응용프로그램에서의 클래스 로딩과정을 보여주는 일예시도.
도 4 는 본 발명의 일실시예에 따른 참조관계가 있는 응용프로그램에서의 객체 참조과정을 보여주는 일예시도.
도 5 는 본 발명의 일실시예에 따른 참조관계가 없는 응용프로그램의 교체과정과 서비스 처리과정을 보여주는 일예시도.
도 6 은 본 발명의 일실시예에 따른 참조관계가 있는 응용프로그램의 교체과정과 서비스 처리과정을 보여주는 일예시도.
도 7 은 본 발명의 일실시예에 따른 교체된 응용프로그램의 최종 반영과정과 서비스 처리과정을 보여주는 일예시도.
도 8 은 본 발명의 일실시예에 따른 교체된 응용프로그램을 교제과정에서 취소하는 과정과 서비스 처리과정을 보여주는 일예시도.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram conceptually illustrating a system for service non-stop application replacement according to an embodiment of the present invention; FIG.
FIG. 2 illustrates an example of a class loading process in an application program having no reference relationship according to an embodiment of the present invention. FIG.
FIG. 3 is an example showing a class loading process in an application program having a reference relationship according to an embodiment of the present invention; FIG.
FIG. 4 illustrates an example of an object reference process in an application program having a reference relationship according to an embodiment of the present invention; FIG.
FIG. 5 is an exemplary diagram illustrating a replacement process and a service process of an application program without a reference relationship according to an embodiment of the present invention; FIG.
FIG. 6 is an exemplary diagram illustrating a replacement process and a service process of an application program having a reference relationship according to an embodiment of the present invention; FIG.
FIG. 7 is an exemplary diagram illustrating a final reflecting process and a service processing process of a replaced application program according to an embodiment of the present invention; FIG.
8 is a diagram illustrating a process of canceling a replaced application program in an associating process according to an embodiment of the present invention and a service processing process.

본 발명의 구체적 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.Specific features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings. It is to be noted that the detailed description of known functions and constructions related to the present invention is omitted when it is determined that the gist of the present invention may be unnecessarily blurred.

이하, 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described in detail with reference to the accompanying drawings.

본 발명의 일실시예에 따른 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템에 관하여 도 1 내지 도 8 을 참조하여 설명하면 다음과 같다.A system for non-stop replacement of an application program in a Java-based business system according to an embodiment of the present invention will be described with reference to FIGS. 1 to 8. FIG.

도 1 은 본 발명의 일실시예에 따른 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템을 개념적으로 도시한 전체 구성도로서, 도시된 바와 같이 사용자 컴퓨터(100), 관리자 컴퓨터(200) 및 어플리케이션 서버(300)를 포함하여 이루어진다. FIG. 1 is a block diagram conceptually illustrating a system for continuously changing an application program in a Java-based business system according to an embodiment of the present invention. As shown in FIG. 1, the user computer 100, the administrator computer 200, And an application server (300).

사용자 컴퓨터(100)는 어플리케이션 서버(300)의 서비스 처리부(310)를 통해 응용프로그램을 사용하며, 관리자 컴퓨터(200)는 어플리케이션 서버(300)의 관리명령 처리부(320)를 통해 응용프로그램을 교체한다.The user computer 100 uses the application program through the service processing unit 310 of the application server 300 and the administrator computer 200 changes the application program through the management command processing unit 320 of the application server 300 .

이러한 사용자 컴퓨터(100)와 관리자 컴퓨터(200)의 상세한 기능을 하기의 설명을 통해 더욱 명확해질 것이다.
The detailed functions of the user computer 100 and the administrator computer 200 will be further described below.

본 발명의 일실시예에 따른 어플리케이션 서버(300)는, 상기 도 1 에 도시된 바와 같이, 서비스 처리부(310), 관리명령 처리부(320), 응용프로그램 관리부(330), 응용프로그램(340), 교체 가능한 클래스로더 관리부(350) 및 교체 가능한 클래스로더(360)를 포함한다. 1, the application server 300 according to an embodiment of the present invention includes a service processing unit 310, an administrative command processing unit 320, an application program management unit 330, an application program 340, A replaceable class loader management unit 350 and a replaceable class loader 360. [

구체적으로, 서비스 처리부(310)는 사용자 컴퓨터(100)로부터 응용프로그램(340)에 대한 사용 요청신호(서비스 요청신호)를 수신한 경우, 응용프로그램의 이름과 클라이언트의 아이피주소 등의 사용자 식별정보를 추출하며, 추출된 사용자 식별정보를 이용하여 응용프로그램 관리부(330)로 해당 사용자 컴퓨터(100)가 사용할 응용프로그램(340)을 요청하고, 응용프로그램 관리부(330)로부터 전달된 응용프로그램을 사용자 컴퓨터(100)로 전달한다.
Specifically, when the service processing unit 310 receives a use request signal (service request signal) for the application program 340 from the user computer 100, the service processing unit 310 stores user identification information such as the name of the application program and the IP address of the client And requests an application program 340 to be used by the user computer 100 to the application program management unit 330 using the extracted user identification information and transmits the application program delivered from the application program management unit 330 to the user computer 100).

관리명령 처리부(320)는 관리자 컴퓨터(200)로부터 수정된 응용프로그램(340)의 예비반영(predeploy), 최종반영(deploy), 취소(throwaway) 등의 명령을 수신하여 응용프로그램 관리부(330)가 이를 수행하도록 처리한다. The management command processing unit 320 receives a command such as predeployment, deployment, and throwaway of the modified application program 340 from the administrator computer 200 and transmits the command to the application program management unit 330 It is processed to perform this.

예비반영(predeploy) 명령을 수신한 경우, 관리명령 처리부(320)는 관리자 컴퓨터(200)로부터 사용자 식별정보를 전달받으며, 해당 사용자 컴퓨터(100)로부터 응용프로그램에 대한 사용 요청신호를 수신하였을 때, 같은 이름을 가진 예비반영 상태의 응용프로그램(340)이 사용될 수 있도록 처리한다.
When receiving a predeploy command, the management command processing unit 320 receives the user identification information from the administrator computer 200. When receiving the use request signal for the application program from the user computer 100, So that the application program 340 having the same name as the preliminary reflecting state can be used.

응용프로그램(340)은 요청을 처리하는 일반적인 업무 구현 클래스들로 구성된다. 또한, 응용프로그램(340)은 고유의 이름을 가지고 있으며, 도 2 에 도시된 바와 같이, 다른 응용프로그램(340)이 참조하여 사용할 수 있는지 여부를 나타내는 shared 속성과, 자신이 참조하는 다른 응용프로그램(340) 이름의 목록(references)을 속성으로 가진다.
The application program 340 comprises general business implementation classes that process requests. In addition, the application program 340 has a unique name, and as shown in FIG. 2, a shared property indicating whether or not another application program 340 can be used by reference and another application program 340) It has a list of names as attributes.

본 발명의 특징적인 일 양상에 따른 응용프로그램 관리부(330)는 상기한 응용프로그램(340)을 관리하여, 응용프로그램(340)의 이름을 기준으로 서비스 처리부(310)로 사용자 컴퓨터(100)가 사용할 응용프로그램(340)을 전달한다. The application program management unit 330 according to an aspect of the present invention manages the application program 340 and controls the service processing unit 310 based on the name of the application program 340 so that the user computer 100 uses And delivers application program 340.

또한, 응용프로그램 관리부(330)는 최종반영(deploy) 상태의 응용프로그램집합과 예비반영(predeploy) 상태의 응용프로그램집합을 구성하여 응용프로그램을 관리한다.
In addition, the application program manager 330 manages the application program by configuring an application program set in a final deployed state and a predeployed application program set.

상술한 바와 같은, 응용프로그램 관리부(330)의 세부기능에 관하여 설명하면 다음과 같다. The detailed functions of the application program management unit 330 as described above will be described below.

응용프로그램 관리부(330)는 상기 서비스 처리부(310)로부터 응용프로그램 사용 요청신호를 수신한 경우, 사용하려고 하는 이름의 응용프로그램(340)이 예비반영 상태의 응용프로그램집합에 존재하지 않는지 여부를 판단한다. When the application program management unit 330 receives the application program use request signal from the service processing unit 310, the application program management unit 330 determines whether the application program 340 whose name is to be used exists in the pre-reflected application program set .

판단결과, 예비반영 상태의 응용프로그램집합에 해당 이름의 응용프로그램(340)이 존재하지 않는 경우, 응용프로그램 관리부(330)는 최종반영상태의 응용프로그램집합에서 해당 이름의 응용프로그램(340)을 찾아, 사용자 컴퓨터(100)가 사용할 수 있도록 서비스 처리부(310)로 전달한다. As a result of the determination, if the application program 340 of the name does not exist in the application program group of the pre-reflected state, the application program management unit 330 finds the application program 340 of the name in the application program group of the final reflecting state To the service processing unit 310 for use by the user computer 100.

한편, 예비반영 상태의 응용프로그램집합에 해당 이름의 응용프로그램(340)이 존재하는 경우, 응용프로그램 관리부(330)는 존재하는 해당 이름의 응용프로그램(340)을 전달받은 사용자 식별정보가 예비반영 상태의 응용프로그램(340)에 부여된 사용자 목록에 포함되는지 여부를 확인한다.On the other hand, if there is an application program 340 of the corresponding name in the pre-reflected application program set, the application program management unit 330 determines whether the user identification information received from the application program 340 having the corresponding name exists in the pre- The application program 340 of FIG.

확인결과, 상기 사용자 목록에 포함될 경우, 응용프로그램 관리부(330)는 예비반영상태의 응용프로그램(340)을 서비스 처리부(310)로 전달한다. If it is determined that the user list is included in the user list, the application program manager 330 delivers the application program 340 in the pre-reflected state to the service processor 310.

한편, 포함되지 않을 경우, 최종반영 상태의 응용프로그램집합에서 해당 이름의 응용프로그램(340)을 찾아, 사용자 컴퓨터(100)가 사용할 수 있도록 서비스 처리부(310)로 전달한다. On the other hand, if it is not included, the application program 340 of the name is found in the application program of the final reflecting state, and the application program 340 is transmitted to the service processing unit 310 for use by the user computer 100.

또한, 응용프로그램 관리부(330)는 관리명령 처리부(320)로부터 응용프로그램(340)에 대한 예비반영 명령을 수신한 경우, 전달받은 클래스들을 포함한 리소스를 이용하여 교체 가능한 클래스로더 관리부(350)로부터 새로운 교체 가능한 클래스로더(360)를 부여받는다. When the application program management unit 330 receives the preliminary reflecting instruction for the application program 340 from the management command processing unit 320, the application program managing unit 330 acquires new preliminary reflecting commands from the replaceable class loader managing unit 350 using resources including the received classes And is provided with a replaceable class loader 360.

또한, 응용프로그램 관리부(330)는 전달된 교체 가능한 클래스로더(360)를 이용하여 응용프로그램(340)을 생성하고, 예비반영 상태에서 사용할 사용자 식별정보 목록을 응용프로그램(340)에 부여한 후, 해당 응용프로그램(340)을 초기화한다. The application program management unit 330 generates the application program 340 using the delivered replaceable class loader 360 and gives the application program 340 a user identification information list to be used in the preliminary reflecting state, Thereby initializing the application program 340.

이후, 초기화된 응용프로그램(340)을 즉각 사용할 수 있는 상태로 예비반영 응용프로그램집합에 보관한다.Thereafter, the initialized application program 340 is stored in a ready-to-use application program set in an immediately usable state.

또한, 응용프로그램 관리부(330)는 관리명령 처리부(320)로부터 예비반영 상태의 응용프로그램(340)에 대한 최종반영 명령을 수신한 경우, 예비반영 응용프로그램 집합에서 해당 이름의 응용프로그램(340)을 확인하여 이를 최종반영 응용프로그램집합에 이관하고, 기존에 최종반영 응용프로그램집합에 있던 같은 이름의 응용프로그램을 제거한다. If the application program management unit 330 receives the final reflecting command for the application program 340 in the preliminary reflecting state from the management command processing unit 320, the application program managing unit 330 reads the application program 340 of the corresponding name from the preliminary reflecting application program set Identify and migrate it to the final reflected application set, and remove the application of the same name that was previously in the final reflected application set.

본 발명에서 제시한 바와 같이, 예비반영 응용프로그램집합에 대기하는 응용프로그램(340)은, 대상 클래스들을 미리 로드하고, 객체들이 생성된 상태이므로 즉각 사용가능한 상태로 최종반영 응용프로그램집합에 이관된다.As shown in the present invention, the application program 340 waiting on the pre-reflected application program set preloads the target classes and transfers them to the final reflected application program set in a ready-to-use state since the objects are created.

또한, 응용프로그램 관리부(330)는 관리명령 처리부(320)로부터 예비반영 상태의 응용프로그램(340)에 대한 반영취소 명령이 수신되거나, 응용프로그램(340)에 대한 예비반영 명령에 부여된 최종반영 대기시간이 초과되었을 때, 예비반영 응용프로그램집합에서 해당 이름의 응용프로그램(340)을 제거한다.
In addition, the application program management unit 330 may receive a reflection cancel command for the application program 340 in the preliminary reflecting state from the management command processing unit 320, When the timeout is exceeded, the application 340 of the corresponding name is removed from the reserve reflection application set.

클래스로더(360)는 응용프로그램(340)의 구현 클래스들을 로드하기 위해, 본 발명에서 제공하는 교체 가능한 클래스로더로서, 다른 교체 가능한 클래스로더(360)에서 참조하여 사용할 수 있는지 여부를 나타내는 shared 속성과, 참조하는 다른 클래스로더의 목록(refrences)을 속성으로 가진다. The class loader 360 is a replaceable class loader provided by the present invention for loading the implementation classes of the application program 340 and a shared property indicating whether or not the class loader 360 can be used by another replaceable class loader 360 , And attributes (refrences) of other referenced class loaders.

응용프로그램(340)은 전용으로 사용하는 교체 가능한 클래스로더(360)로부터 클래스와 리소스를 로드하여 사용하고, 만약 자신이 전용으로 사용하는 교체 가능한 클래스로더(360)에 사용하려고 하는 클래스 또는 리소스가 포함되어 있지 않은 경우, 참조하는 다른 교체 가능한 클래스로더(360)들로부터 이를 로드하여 사용한다.
The application program 340 loads and uses classes and resources from a replaceable class loader 360 dedicated for use, and includes classes or resources to be used by the replaceable class loader 360 that it uses exclusively If not, it is loaded and used from the other replaceable class loaders 360 to be referenced.

본 발명의 특징적인 일 양상에 따른 클래스로더 관리부(350)는, 상기한 교체 가능한 클래스로더(360)들을 관리하여 응용프로그램(340)이 교체될 때, 해당 응용프로그램(340)에서 사용할 교체 가능한 클래스로더(360)를 생성하여 전달한다. The class loader management unit 350 according to an exemplary aspect of the present invention manages the replaceable class loaders 360 and updates the replaceable class loader 360 to be used in the application program 340 when the application program 340 is replaced And generates and transmits the loader 360.

또한, 클래스로더 관리부(350)는 응용프로그램(340)들의 참조관계를 파악하여, 참조관계에 따라 함께 변경되어야 하는 응용프로그램(340)들의 목록을 생성하고, 대상 응용프로그램(340)들의 참조관계에 따라 교체 가능한 클래스로더(360)들을 교체하고, 참조관계를 재설정함으로써 응용프로그램(340)의 변경이 정확히 반영될 수 있도록 한다.
The class loader management unit 350 can obtain a list of the application programs 340 to be changed together according to the reference relationship by referring to the reference relationships of the application programs 340, Thus replacing the replaceable class loaders 360 and resetting the reference relationship so that the changes in the application program 340 can be accurately reflected.

상술한 바와 같은, 교체 가능한 클래스로더 관리부(350)의 세부기능에 관하여 설명하면 다음과 같다. The detailed function of the replaceable class loader management unit 350 as described above will be described below.

교체 가능한 클래스로더 관리부(350)는 응용프로그램 관리부(330)로부터 신규 응용프로그램(340)을 위한 교체 가능한 클래스로더(350) 요청이 발생하면, 응용프로그램을 위한 리소스를 이용하여 새로운 교체 가능한 클래스로더(360)를 생성하여 응용프로그램 관리부(330)로 전달한다. The replaceable class loader management unit 350 may receive a replaceable class loader 350 request for a new application program 340 from the application program management unit 330 and use a resource for the application program to create a new replaceable class loader 360 to the application program manager 330.

이때, 교체 가능한 클래스로더 관리부(350)는 대상 응용프로그램(340)이 다른 응용프로그램(340)을 참조하고 있는지 여부를 판단한다.At this time, the replaceable class loader management unit 350 determines whether the target application program 340 refers to another application program 340 or not.

판단결과, 대상 응용프로그램(340)이 다른 응용프로그램(340)을 참조하고 있는 경우, 교체 가능한 클래스로더 관리부(350)는 참조하는 응용프로그램(340)을 위한 교체 가능한 클래스로더(360)를 신규 응용프로그램(340)을 위한 교체 가능한 클래스로더(360)에서 참조하여 사용할 수 있도록 참조 클래스로더 목록에 추가한다. As a result of the determination, if the target application program 340 refers to the other application program 340, the replaceable class loader management unit 350 updates the replaceable class loader 360 for the referenced application program 340 to the new application Is added to the reference class loader list for use by the replaceable class loader 360 for the program 340.

한편, 다른 응용프로그램에서 대상 응용프로그램을 참조하고 있는 경우, 교체 가능한 클래스로더 관리부(350)는 해당 응용프로그램(340)을 위한 교체 가능한 클래스로더(360)의 참조 클래스로더 목록에 이를 추가한다.
On the other hand, if another application program refers to the target application program, the replaceable class loader management unit 350 adds it to the reference class loader list of the replaceable class loader 360 for the application program 340.

또한, 교체 가능한 클래스로더 관리부(350)는 응용프로그램 관리부(330)로부터 응용프로그램(340)의 예비반영 요청신호를 수신할 경우, 수정된 응용프로그램(340)을 위한 교체 가능한 클래스로더(360)를 생성하여 응용프로그램 관리부(330)로 전달하고, 대상 응용프로그램을 참조하는 다른 응용프로그램들도 함께 변경되어 예비반영상태로 진입할 수 있도록 이들을 위한 교체 가능한 클래스로더(360)를 신규 생성한다. When the replaceable class loader management unit 350 receives the preliminary reflection request signal of the application program 340 from the application program management unit 330, the replaceable class loader management unit 350 reads the replaceable class loader 360 for the modified application program 340 And transmits it to the application program management unit 330. The application program management unit 330 also newly creates a replaceable class loader 360 for other application programs that refer to the target application program so that they can be changed and enter the preliminary reflecting state.

그리고, 교체 가능한 클래스로더 관리부(350)는 신규 생성된 교체 가능한 클래스로더(360)들을 위해 참조관계에 따라 클래스로더 참조 속성을 부여한다.
Then, the replaceable class loader management unit 350 assigns the class loader reference attribute according to the reference relationship for the newly created replaceable class loader 360.

한편, 상술한 교체 가능한 클래스로더(360)가 응용프로그램(340)에서 사용하는 클래스와 리소스를 로드하는 과정을 도 2 를 참조하여 설명하면 다음과 같다.The process of loading the classes and resources used by the replaceable class loader 360 in the application program 340 will now be described with reference to FIG.

도 2 는 본 발명의 일실시예에 따른, 다른 응용프로그램을 참조하지 않는 응용프로그램(340) B를 위한 교체 가능한 클래스로더(360) B가 클래스와 리소스들을 로드하는 과정을 설명한다. FIG. 2 illustrates a process in which a replaceable class loader 360 B for an application program 340 B that does not refer to another application program loads classes and resources, according to an embodiment of the present invention.

도시된 바와 같이, 교체 가능한 클래스로더 관리부(350)는 응용프로그램 관리부(330)로부터 응용프로그램(340) B에서의 클래스 또는 리소스 로드 요청이 전달될 경우(L100), 교체 가능한 클래스로더 관리부(350)는 교체 가능한 클래스로더(360) B가 자신을 위한 리소스 목록에서 대상 클래스 또는 리소스를 로드하도록 관리한다(L110). 만약, 자신을 위한 리소스 목록에 대상 클래스 또는 리소스가 존재하지 않을 경우, 시스템 클래스로더(10)에 이를 위임하여 로드된 결과를 응용프로그램에 전달하도록 관리한다(L120).
The replaceable class loader management unit 350 determines whether a class or resource load request in the application program 340 B is transferred from the application program management unit 330 to the replaceable class loader management unit 350 The replaceable class loader 360 B manages to load the target class or resource from the resource list for itself (L110). If the target class or resource does not exist in the resource list for itself, it delegates it to the system class loader 10 and manages to deliver the loaded result to the application program (L120).

도 3 은 본 발명의 일실시예에 따른, 다른 응용프로그램 B를 참조하는 응용프로그램(340) A를 위해 교체 가능한 클래스로더(360) A가 클래스와 리소스들을 로드하는 과정을 설명하는 일예시도이다.3 is an exemplary diagram illustrating a process of loading a class and resources by a replaceable class loader 360 A for an application program 340 A referring to another application program B according to an embodiment of the present invention .

도시된 바와 같이, 교체 가능한 클래스로더 관리부(350)는 응용프로그램 관리부(330)로부터 응용프로그램(340) A에서의 클래스 또는 리소스 로드 요청이 전달될 경우(L100), 교체 가능한 클래스로더 관리부(350)는 교체 가능한 클래스로더(360) A가 자신을 위한 리소스 목록에서 대상 클래스 또는 리소스를 로드하도록 관리한다(L110). 만약, 자신을 위한 리소스 목록에 대상 클래스 또는 리소스가 존재하지 않을 경우, 자신이 참조하는 교체 가능한 클래스로더(360) B에 이를 위임하도록 관리한다(L120).As shown, the replaceable class loader management unit 350 receives the class or resource load request from the application program management unit 330 in the application program 340 A (L100), the replaceable class loader management unit 350, The replaceable class loader 360 A manages to load the target class or resource in the resource list for itself (L110). If the target class or resource does not exist in the resource list for itself, it manages to delegate it to the replaceable class loader 360 B referenced by itself (L 20).

또한, 교체 가능한 클래스로더 관리부(350)는 로드 요청을 수신한 교체 가능한 클래스로더(360) B가 자신을 위한 리소스 목록에서 클래스 또는 리소스를 찾도록 하며(L121), 대상 리소스가 존재한다면 이를 전달하도록 관리한다. 이때, 참조하는 다른 교체 가능한 클래스로더(360)가 하나 이상이면 이를 반복적으로 수행한다.In addition, the replaceable class loader management unit 350 causes the replaceable class loader 360 B, which has received the load request, to search for a class or a resource in the resource list for itself (L 121), and if the target resource exists, Management. At this time, if there is at least one other replaceable class loader 360 to be referred to, it is repeatedly performed.

만약, 교체 가능한 클래스로더(360) A에서 참조하는 모든 교체 가능한 클래스로더(360)들을 이용하여도 대상 클래스 또는 리소스를 찾을 수 없다면, 마지막으로 시스템 클래스로더(10)에 로드를 위임하도록 관리한다(L130).If the target class or resource can not be found even by using all replaceable class loaders 360 referenced by the replaceable class loader 360 A, the system class loader 10 is managed to delegate the load to the system class loader 10 L130).

참조하는 교체 가능한 클래스로더(360)들에 로드를 위임하는 과정은, 참조관계에 따라 순환참조가 발생할 수 있으나, 교체 가능한 클래스로더 관리부(350)는 이를 감지하여 무한 반복되는 참조 위임을 방지한다.
In the process of delegating loads to the replaceable class loaders 360 to be referenced, the replaceable class loader managing unit 350 detects this and prevents infinite repeated reference delegation.

도 4 는 본 발명의 일실시예에 따른, 응용프로그램(340)에서 다른 응용프로그램(340)의 객체를 참조하는 과정에 관한 일예시도이다. FIG. 4 is a diagram illustrating an example of a process of referring to an object of another application program 340 in an application program 340 according to an embodiment of the present invention.

도시된 바와 같이, 응용프로그램(340) A에서 객체 A01을 생성할 때(C100), 객체 A01에 포함된 필드 객체가 참조하는 다른 응용프로그램(340) B에 존재할 경우, 응용프로그램(340) A가 객체 A01 생성과정에서 참조하는 응용프로그램(340) B에 해당 객체 B01을 요청하여 전달받고, 객체 A01에 할당하도록 관리한다. 참조하는 응용프로그램(340)이 하나 이상이면 이를 반복적으로 수행한다.As shown, when the application program 340 A creates the object A01 (C100) and the field object contained in the object A01 exists in another application program 340 B referenced by the application program 340, the application program 340 A The object B01 is requested to the application program 340 B referenced in the process of creating the object A01, and the object B01 is managed to be allocated to the object A01. If there is more than one application program 340 to be referred to, it is repeatedly executed.

참조하는 응용프로그램(340)에 객체를 요청하는 과정은, 참조관계에 따라 순환참조가 발생할 수 있으나, 응용프로그램 관리부(340)는 이를 감지하여 무한 반복되는 객체요청을 방지한다.
In the process of requesting an object to be referred to by the application program 340, the application program manager 340 detects the circular reference according to the reference relationship, and prevents the object request from being repeated indefinitely.

도 5 는 본 발명의 일실시예에 따른, 다른 응용프로그램(340)을 참조하지 않는 응용프로그램(340)이 수정되어 예비반영되는 과정에서의 처리흐름과 예비반영이 진행 중인 상태에서의 사용자 요청 처리흐름에 관한 일예시도이다.5 is a flowchart illustrating a process flow in a case where an application program 340 that does not refer to another application program 340 is modified and preliminarily reflected according to an embodiment of the present invention, Fig.

도시된 바와 같이, 관리자 컴퓨터(200)는 수정된 응용프로그램(340)에서 사용할 리소스와 응용프로그램(340)의 이름, 예비반영상태의 응용프로그램(340)을 사용할 사용자 식별정보 목록을 포함한 예비반영 요청신호를 관리명령 처리부(320)로 전송하고, 관리명령 처리부(320)는 응용프로그램 관리부(330)로 전송한다(D100).As shown in the figure, the administrator computer 200 has a resource to be used in the modified application program 340, a name of the application program 340, a preliminary reflecting request including the user identification information list to be used in the preliminary reflecting state application program 340 And transmits the signal to the management command processing unit 320. The management command processing unit 320 transfers the signal to the application program management unit 330 (D100).

상기 예비반영 요청신호를 수신한 응용프로그램 관리부(330)는, 기존에 같은 이름의 응용프로그램(340) A가 최종반영 응용프로그램집합에 존재하는지 여부를 판단하여, 존재할 경우, 응용프로그램(340) A-1을 생성하고(D110), 응용프로그램(340) A-1에서 사용할 리소스를 복사한 후(D111), 복사된 리소스의 경로와 함께 신규 교체 가능한 클래스로더(360) A-1을 교체 가능한 클래스로더 관리부(350)로 요청한다(D112). Upon reception of the preliminary reflection request signal, the application program management unit 330 determines whether the application program 340 A having the same name exists in the final reflected application program set. If the application program 340 exists, the application program 340 (D110). After copying the resource to be used in the application program 340-1 (D111), the newly replaceable class loader 360-1 is replaced with a replaceable class loader 360-1 And requests the loader management unit 350 (D112).

이후, 교체 가능한 클래스로더 관리부(350)는 전달된 교체 가능한 클래스로더(360) A-1을 생성한 후, 전달된 경로의 리소스를 사용하도록 설정하여 응용프로그램(340) A-1에서 사용할 수 있도록 응용프로그램 관리부(330)로 전달한다. Thereafter, the replaceable class loader management unit 350 generates the forwarded replaceable class loader 360-A 1, sets the forwarded class loader 360 A-1 to use the resource of the forwarded path, and makes it available for use in the application program 340 A-1 And transfers it to the application program management unit 330.

응용프로그램 관리부(330)는 응용프로그램(340) A-1이 준비되면 이를 사용할 사용자식별 정보 목록을 부여한 후, 예비반영 응용프로그램 집합에 등록한다.
When the application program 340 is ready, the application program management unit 330 assigns a list of user identification information to be used and registers the application program in the pre-reflected application program set.

또한, 응용프로그램(340) A-1이 예비반영 응용프로그램집합에 등록되기 이전 상태에서, 사용자 컴퓨터(100)가 서비스 요청신호를 전송(R100)함에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우(R110), 응용프로그램 관리부(330)는 요청받은 이름의 응용프로그램(340)이 예비반영 응용프로그램집합에 아직 존재하지 않으므로, 응용프로그램(340) A를 사용하도록 서비스 처리부(310)를 통해 사용자 컴퓨터(100)로 전달한다.The user computer 100 transmits a service request signal to the service processing unit 310 in response to the service request signal transmitted from the user computer 100 (R100) before the application program 340 is registered in the pre- The application program management unit 330 determines that the application program 340 having the requested name does not yet exist in the reserved reflection application program set so that the service processing unit 310 uses the application program 340 A, To the user computer (100).

한편, 응용프로그램(340) A-1이 예비반영 응용프로그램집합에 등록된 상태에서, 사용자 컴퓨터(100)가 서비스 요청신호를 서비스 처리부(310)로 전송하고(R200), 서비스 요청신호를 서비스 처리부(310)로부터 수신할 경우(R210), 응용프로그램 관리부(330)는 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램(340) A-1을 획득한다. Meanwhile, when the application program 340 is registered in the preliminary reflecting application program set, the user computer 100 transmits a service request signal to the service processing unit 310 (R200) (R210), the application program management unit 330 acquires the application program 340 A-1 of the requested name in the pre-reflected application program set.

응용프로그램(340) A-1의 사용자 식별정보 목록에 요청한 사용자 컴퓨터(100)의 식별정보가 포함되어 있는 경우, 응용프로그램 관리부(330)는 예비반영 상태의 응용프로그램(340) A-1을 사용하도록 해당 사용자 컴퓨터(100)로 전달하며, 사용자 식별정보 목록에 요청한 사용자 컴퓨터(100)의 식별정보가 포함되어 있지 않은 경우, 응용프로그램 관리부(330)는 최종반영 상태의 응용프로그램(340) A를 사용할 수 있도록 사용자 컴퓨터(100)로 전달한다.In a case where the user identification information of the user computer 100 is included in the user identification information list of the application program 340-1, the application program management unit 330 uses the application program 340-1 If the identification information of the user computer 100 is not included in the user identification information list, the application program management unit 330 transmits the application program 340 A of the final reflecting state to the user computer 100 To the user computer 100 for use.

한편, 응용프로그램(340)의 예비반영 요청신호를 전송할 때 전달된 사용자 식별정보가 관리자 컴퓨터(200)의 사용자 식별정보이고, 관리자 컴퓨터(200)가 서비스 요청신호를 서비스 처리부(310)로 전송(R300)함에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우(R310), 응용프로그램 관리부(330)는 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램(340) A-1을 획득하여 사용하도록 관리자 컴퓨터(200)로 전달한다.
Meanwhile, when the user identification information transmitted when the preliminary reflection request signal of the application program 340 is transmitted is the user identification information of the administrator computer 200, the manager computer 200 transmits a service request signal to the service processing unit 310 R300), when the service request signal is received through the service processing unit 310 (R310), the application program management unit 330 acquires the application program 340 A-1 of the requested name in the preliminary reflecting application program set And transmits it to the manager computer 200 for use.

도 6 은 본 발명의 일실시예에 따른, 다른 응용프로그램(340)을 참조하는 응용프로그램(340)이 수정되어 예비반영되는 과정에서의 처리흐름과 예비반영이 진행 중인 상태에서의 사용자 요청 처리흐름에 관한 일예시도이다.FIG. 6 is a flowchart illustrating a process flow in a case where an application program 340 that refers to another application program 340 is modified and preliminarily reflected and a user request process flow in a state in which preliminary reflection is in progress, according to an embodiment of the present invention. Fig.

도시된 바와 같이, 관리자 컴퓨터(200)는 수정된 응용프로그램(340)에서 사용할 리소스와 응용프로그램(340)의 이름, 예비반영상태의 응용프로그램(340)을 사용할 사용자 식별정보 목록을 포함한 예비반영 요청신호를 관리명령 처리부(320)를 통해 응용프로그램 관리부(330)로 전송한다(D200).As shown in the figure, the administrator computer 200 has a resource to be used in the modified application program 340, a name of the application program 340, a preliminary reflecting request including the user identification information list to be used in the preliminary reflecting state application program 340 And transmits the signal to the application program management unit 330 through the management command processing unit 320 (D200).

상기 예비반영 요청신호를 수신한 응용프로그램 관리부(330)는, 기존에 같은 이름의 응용프로그램(340) B가 최종반영 응용프로그램집합에 존재하는지 여부를 판단하여, 존재할 경우 응용프로그램(340) B-1을 생성하고(D210), 응용프로그램(340) B-1에서 사용할 리소스를 복사한 후(D211), 복사된 리소스의 경로와 함께 신규 교체 가능한 클래스로더(360) B-1을 교체 가능한 클래스로더 관리부(350)로 요청한다. The application program management unit 330 receives the preliminary reflection request signal and determines whether the application program 340 B having the same name exists in the final reflected application program set. If the application program 340 B exists in the final reflected application program set, (D210). After copying the resources to be used in the application program B-1 (D211), the newly replaceable class loader 360-1 is replaced with a replaceable class loader 360 And requests the management unit 350.

이후, 교체 가능한 클래스로더 관리부(350)는 전달된 교체 가능한 클래스로더(360) B-1을 생성한 후(D212), 전달된 경로의 리소스를 사용하도록 설정한다. Thereafter, the replaceable class loader management unit 350 creates the transferred replaceable class loader 360 (B-1) (D212) and sets it to use the resource of the transferred path.

교체 가능한 클래스로더 관리부(350)는 관리중인 교체 가능한 클래스로더(360)들의 참조관계를 분석하여 기존에 존재하는 교체 가능한 클래스로더(360) B를 참조하여 사용하는 모든 교체 가능한 클래스로더(360)를 발견한다. The replaceable class loader management unit 350 analyzes the reference relationship of the replaceable class loaders 360 being managed and refers to all replaceable class loaders 360 that exist in the existing replaceable class loader 360 Found.

본 실시예에서는, 교체 가능한 클래스로더(360) A가 발견되었으며, 해당 교체 가능한 클래스로더(360)를 위한 리소스를 복사한 후(D221), 교체 가능한 클래스로더(360) A-1을 생성한다(D222). In this embodiment, a replaceable class loader 360 A is found, copies the resource for the replaceable class loader 360 (D221), and creates a replaceable class loader 360-1 D222).

이후, 신규 생성된 교체 가능한 클래스로더(360)들 간의 참조관계를 재설정하고, 기존에 사용되던 교체 가능한 클래스로더(360)들의 참조관계에 따른 레퍼런스 정보를 회수한다. Thereafter, the reference relationship between the newly created replaceable class loaders 360 is reset, and the reference information according to the reference relationship of the replaceable class loaders 360 used previously is retrieved.

교체 가능한 클래스로더 관리부(350)는 응용프로그램에 교체된 교체 가능한 클래스로더(360) A-1과 교체 가능한 클래스로더(360) B-1을 응용프로그램(340) A-1과 응용프로그램(340) B-1에서 사용하도록 전달한다. The replaceable class loader management unit 350 transfers the replaceable class loader 360-A-1 and the replaceable class loader 360-B that have been replaced to the application program to the application program 340-A and the application program 340, B-1.

응용프로그램 관리부(330)는 참조관계에 따라 응용프로그램(340) A-1을 신규 생성하여(D220), 응용프로그램(340) B-1과 응용프로그램(340) A-1에 이를 사용할 사용자식별 정보 목록을 부여한 후 예비반영 응용프로그램 집합에 등록한다. The application program management unit 330 newly creates an application program 340-1 in accordance with a reference relationship and generates user identification information for use in the application program 340-1 and the application program 340- After registering the list, register it in the reserve reflection application set.

한편, 응용프로그램(340) B-1과 참조 분석의 결과로 신규 생성된 응용프로그램(340) A-1이 예비반영 응용프로그램집합에 등록되기 이전 상태에서, 사용자 컴퓨터(100)가 서비스 요청신호를 전송(R400)함에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우(R410), 응용프로그램 관리부(330)는 요청받은 이름의 응용프로그램(340)이 예비반영 응용프로그램집합에 아직 존재하지 않으므로, 요청된 응용프로그램(340)의 이름에 따라 응용프로그램(340) A 또는 응용프로그램(340) B를 사용하도록 서비스 처리부(310)에 전달한다. On the other hand, in a state where the application program 340 A-1 newly generated as a result of the reference application analysis 340 and the reference application analysis program 340 is registered in the pre-reflected application program set, the user computer 100 transmits a service request signal (R410), the application program management unit 330 determines that the application program 340 having the requested name is still present in the preliminary reflecting application program set if the service request signal is received through the service processing unit 310 (R410) The application program 340 transfers the application program 340 A or the application program 340 B to the service processing unit 310 according to the name of the requested application program 340.

또한, 응용프로그램(340) B-1과 참조 분석의 결과로 신규 생성된 응용프로그램(340) A-1이 예비반영 응용프로그램집합에 등록된 상태에서, 사용자 컴퓨터(100)가 서비스 요청신호를 서비스 처리부(310)로 전송(R500)에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우(R510), 응용프로그램 관리부(330)는 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램(340) B-1 또는 응용프로그램(340) A-1을 획득한다. Also, in a state where the application program 340-A and the newly generated application program 340-A generated as a result of the reference analysis are registered in the preliminary reflecting application program set, the user computer 100 transmits a service request signal to the service If the service request signal is received through the service processing unit 310 (R510) according to the transmission (R500) to the processing unit 310, the application program management unit 330 determines whether the application program 340) B-1 or application 340 (340) A-1.

획득된 응용프로그램(340)의 사용자 식별정보 목록에 요청한 사용자 컴퓨터(100)의 식별정보가 포함되어 있는 경우, 응용프로그램 관리부(330)는 예비반영 상태의 응용프로그램(340) B-1 또는 응용프로그램(340) A-1이 해당 사용자 컴퓨터(100)로 사용되도록 전달하며, 사용자 식별정보 목록에 사용자 컴퓨터(100)의 식별정보가 포함되어 있지 않은 경우, 응용프로그램 관리부(330)는 최종반영 상태의 응용프로그램(340) A 또는 응용프로그램(340) B를 사용할 수 있도록 사용자 컴퓨터(100)로 전달한다.If the identification information of the user computer 100 is included in the user identification information list of the acquired application program 340, the application program management unit 330 may determine whether the application program 340 (B-1) If the identification information of the user computer 100 is not included in the user identification information list, the application program management unit 330 transmits the identification information of the user computer 100 to the user computer 100 The application program 340 A or the application program 340 B to the user computer 100 for use.

한편, 응용프로그램(340)의 예비반영 요청신호(D200)를 전송할 때 전달된 사용자 식별정보가 관리자 컴퓨터(200)의 사용자 식별정보이고, 관리자 컴퓨터(200)가 서비스 요청신호를 서비스 처리부(310)로 전송(R600)함에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우(R610), 응용프로그램 관리부(330)는 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램(340)을 획득하여 관리자 컴퓨터(200)로 전달한다.
Meanwhile, when the user identification information transmitted when the preliminary reflection request signal D200 of the application program 340 is transmitted is the user identification information of the administrator computer 200, the administrator computer 200 transmits a service request signal to the service processing unit 310, (R600), if the service request signal is received through the service processing unit 310 (R610), the application program management unit 330 acquires the application program 340 having the requested name in the reserved reflection application program set And transmits it to the manager computer 200.

도 7 은 본 발명의 일실시예에 따른, 예비반영된 응용프로그램(340) A-1과 응용프로그램(340) B-1을 최종반영하는 과정에서의 처리흐름과, 최종반영이 완료된 상태에서의 사용자 요청 처리흐름에 관한 일예시도이다.7 is a flowchart illustrating a process flow in a process of finally reflecting a pre-reflected application program 340 A-1 and an application program 340 B-1 according to an embodiment of the present invention, FIG. 8 is an example of a request processing flow. FIG.

도시된 바와 같이, 관리자 컴퓨터(200)는 최종반영할 응용프로그램(340) A-1과 응용프로그램(340) B-1의 이름을 포함한 최종반영 요청신호를 관리명령 처리부(320)를 통해 응용프로그램 관리부(330)로 전송한다(D300).The administrator computer 200 transmits a final reflection request signal including the name of the application program 340 A-1 and the application program 340 B-1 to be finally reflected to the application program 340 through the management command processing unit 320. [ To the management unit 330 (D300).

응용프로그램 관리부(330)는 예비반영 응용프로그램 집합에서 응용프로그램(340) A-1을 제거하고(D310), 교체 가능한 클래스로더(360) A-1이 최종반영상태로 사용되고 있음을 교체 가능한 클래스로더 관리부(350)로 전달한다(D311). Application program manager 330 removes application program 340 A-1 from the pre-reflected application program set (D310) and indicates to replaceable class loader 360 that it is being used in the final reflecting state To the management unit 350 (D311).

마찬가지로, 응용프로그램 관리부(330)는 예비반영 응용프로그램집합에서 응용프로그램(340) B-1을 제거하고(D320), 교체 가능한 클래스로더(360) B-1이 최종반영상태로 사용되고 있음을 교체 가능한 클래스로더 관리부(350)로 전달한다(D321). Similarly, the application program manager 330 removes the application program 340 from the pre-reflected application program set (D320) and notifies the replaceable class loader 360 (B-1) To the class loader management unit 350 (D321).

또한, 응용프로그램 관리부(330)는 기존에 사용되고 있던 응용프로그램(340) A를 최종반영 응용프로그램집합에서 제거하고, 응용프로그램(340) A-1을 대체하여 등록한 후(D312), 교체 가능한 클래스로더(360) A가 적절하게 소멸되어야 함을 교체 가능한 클래스로더 관리부(350)로 전달한다(D313). The application program management unit 330 removes the application program 340A from the final reflected application program set and registers the application program 340 in place of the application program 340 in step D312. (360) A to the replaceable class loader management unit 350 (D313).

이후, 교체 가능한 클래스로더 관리부(350)는 교체 가능한 클래스로더(360) A를 제거하면서, 해당 교체 가능한 클래스로더(360) A가 사용하던 리소스들을 삭제한다(D314). Thereafter, the replaceable class loader management unit 350 deletes the resources used by the replaceable class loader 360 A while removing the replaceable class loader 360 A (D314).

마찬가지로, 응용프로그램 관리부(330)는 기존에 사용되고 있던 응용프로그램(340) B를 최종반영 응용프로그램집합에서 제거하고, 응용프로그램(340) B-1을 대체하여 등록한 후(D322), 교체 가능한 클래스로더(360) B가 적절하게 소멸되어야 함을 교체 가능한 클래스로더 관리부(350)로 전달한다(D323). Similarly, the application program manager 330 removes the application program 340 B that has been used in the past from the final reflecting application program set and substitutes and registers the application program 340 B-1 (D322) (360) B to the replaceable class loader management unit 350 (D323).

교체 가능한 클래스로더 관리부(350)는 교체 가능한 클래스로더(360) B를 제거하면서, 해당 교체 가능한 클래스로더(360) B가 사용하던 리소스들을 삭제한다(D324).The replaceable class loader management unit 350 deletes the resources used by the replaceable class loader 360 B while removing the replaceable class loader 360 B (D 324).

한편, 응용프로그램(340) A-1과 응용프로그램(340) B-1이 최종반영된 이후, 사용자 컴퓨터(100)가 서비스 요청신호를 서비스 처리부(310)로 전송(R700)에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우(R710), 응용프로그램 관리부(330)는 요청된 이름의 응용프로그램(340)을 최종반영 응용프로그램집합에서 획득하여 이를 서비스 처리부(310)를 통해 사용자 컴퓨터(100)로 전달한다.
After the application program 340 and the application program 340 are finally reflected, the user computer 100 transmits a service request signal to the service processing unit 310 (R700) The application program management unit 330 obtains the application program 340 of the requested name from the final reflected application program set and transmits the acquired application program 340 to the user computer 310 through the service processing unit 310 (100).

도 8 은 본 발명의 일실시예에 따른, 예비반영된 응용프로그램(340) A-1과 응용프로그램(340) B-1이 관리자 컴퓨터(200) 또는 예비반영 상태의 응용프로그램(340) A-1과 응용프로그램(340) B-1을 사용하도록 지정된 사용자 컴퓨터(100)에 의해 사용되었으나, 오류가 발견되어 관리자 컴퓨터(200)가 반영을 취소하거나 예비반영 시에 지정한 대기시간이 경과하였을 때 반영이 취소되는 과정에서의 처리흐름과, 반영취소 이후 사용자 요청 처리흐름에 관한 일예시도이다.8 is a diagram illustrating a case where a pre-reflected application program 340-A and an application program 340-B according to an embodiment of the present invention are installed in the administrator computer 200 or the application program 340 A- And the application program 340 is used by the user computer 100 designated to use the application program B-1. However, when the error is detected and the administrator computer 200 cancels the reflection or the wait time designated in the preliminary reflection elapses, FIG. 8 is a diagram illustrating an example of a process flow in a canceled process and a user request process flow after canceling a reflection; FIG.

도시된 바와 같이, 관리자 컴퓨터(200)로부터 반영 취소할 응용프로그램(340) A-1과 응용프로그램(340) B-1의 이름을 포함한 반영취소 요청신호를 수신하거나(D400), 예비반영 시에 지정한 대기시간이 경과되었을 때, 응용프로그램 관리부(330)는 예비반영 응용프로그램 집합에서 응용프로그램(340) A-1을 제거하고(D410), 교체 가능한 클래스로더 관리부(350)에 교체 가능한 클래스로더(360) A-1이 적절하게 소멸되어야 함을 전달한다(D411). As shown in the figure, a reflection cancellation request signal including the names of the application program 340 A-1 and the application program 340 B-1 to be canceled from the administrator computer 200 is received (D400) When the specified waiting time has elapsed, the application program manager 330 removes the application program 340 from the preliminary reflecting application program set (D410), and the replaceable class loader manager 350 issues a replaceable class loader 360) A-1 should be properly destroyed (D411).

교체 가능한 클래스로더 관리부(350)는 교체 가능한 클래스로더(360) A-1을 제거하면서, 해당 교체 가능한 클래스로더(360) A-1이 사용하던 리소스들을 삭제한다(D412). The replaceable class loader management unit 350 deletes the resources used by the replaceable class loader 360 A-1 while removing the replaceable class loader 360 A-1 (D412).

마찬가지로, 응용프로그램 관리부(330)는 예비반영 응용프로그램 집합에서 응용프로그램(340) B-1을 제거하고(D420), 교체 가능한 클래스로더 관리부(350)에 교체 가능한 클래스로더(360) B-1이 적절하게 소멸되어야 함을 교체 가능한 클래스로더 관리부(350)로 전달한다(D421).Likewise, the application program manager 330 removes the application program 340 from the pre-reflected application program set (D420), and the replaceable class loader management unit 350 sends the replaceable class loader 360 (B-1) And transfers it to the replaceable class loader management unit 350 (D421).

교체 가능한 클래스로더 관리부(350)는 교체 가능한 클래스로더(360) B-1을 제거하면서, 해당 교체 가능한 클래스로더(360) B-1이 사용하던 리소스들을 삭제한다(D422).The replaceable class loader management unit 350 deletes the resources used by the replaceable class loader 360 B-1 while removing the replaceable class loader 360 B-1 (D422).

응용프로그램(340) A-1과 응용프로그램(340) B-1이 반영 취소된 이후, 사용자 컴퓨터(100)로부터 서비스 요청신호를 서비스 처리부(310)로 전송(R800)함에 따라, 서비스 요청신호를 서비스 처리부(310)를 통해 수신한 경우, 응용프로그램 관리부(330)는 요청된 이름의 응용프로그램(340)을 최종반영 응용프로그램집합에서 획득하여 이를 서비스 처리부(310)를 통해 사용자 컴퓨터(100)로 전달한다.
The service request signal is transmitted from the user computer 100 to the service processing unit 310 (R800) after the reflection of the application program 340 and the application program 340 is canceled The application program management unit 330 acquires the application program 340 having the requested name from the final reflecting application program set and transmits the acquired application program 340 to the user computer 100 through the service processing unit 310 .

상술한 바와 같은, 본 발명은 다음과 같은 특징적인 장점을 가진다. As described above, the present invention has the following characteristic advantages.

먼저, 응용프로그램의 교체 후 서비스처리 성능 지연을 방지할 수 있다. First, the service processing performance delay after replacement of the application program can be prevented.

자바 실행환경에서 클래스로더가 클래스를 로드하여 정의하는 작업은 동시에 수행될 수 없는 작업이다. 이 때문에 클래스를 로드하는 수행 방법은 순차적으로 처리될 수 있도록 synchronized로 선언되어 있다. In a Java runtime environment, a class loader can not be loaded at the same time to load and define a class. Because of this, the way to load classes is declared synchronized so that they can be processed sequentially.

이러한 특징으로 인해 응용프로그램이 처음 사용될 때에는 동시에 접수된 처리요청이 관련된 클래스가 모두 로드-정의될 때까지 대기하는 상태가 되므로 최초 응답시간이 현저히 떨어지는 현상이 발생한다. 대량의 사용자 요청이 유입되고 있는 시스템 운영환경에서 응용프로그램이 변경되어 클래스를 모두 새로 로드해야할 필요가 발생하는 경우에는 처리속도의 저하로 인해 응답시간이 급격히 증가하게 된다. Because of this feature, when the application is used for the first time, the initial response time drops significantly because the processing request received at the same time waits until all related classes are loaded-defined. In a system operating environment in which a large number of user requests are input, when an application program is changed and a class needs to be newly loaded, the response time is rapidly increased due to a decrease in processing speed.

본 발명에서는 응용프로그램이 사용되기 전에 지정한 패턴에 해당하는 클래스를 모두 로드한 이후에 교체된 응용프로그램이 사용되도록 함으로써, 시스템 운영 중 응용프로그램의 변경에 따른 응답성능의 저하를 방지한다.
According to the present invention, the replaced application program is used after all the classes corresponding to the designated pattern are loaded before the application program is used, thereby preventing the degradation of the response performance due to the change of the application program during system operation.

또한, 메모리 과점 방지를 통한 안정적인 응용프로그램의 교체가 가능하다. 클래스로더는 자신이 로드하여 정의한 모든 클래스들의 목록을 보유하고 있으며, 마찬가지로 로드된 클래스는 자신을 정의한 클래스로더에 대한 참조를 유지한다. 이러한 참조와 보유 관계로 인해 클래스로더는 응용프로그램 실행을 위해 필요한 클래스전체에 해당하는 메모리를 점유하게 된다. 더 이상 사용되지 않는 클래스로더가 자바가상머신의 가비지콜렉터에 의해 정확하게 제거되지 않는다면 메모리 점유가 증가되어 프로세스가 장애에 이르게 된다. In addition, it is possible to replace stable application programs by avoiding memory glitches. The class loader holds a list of all the classes that it has loaded and defined, and similarly the loaded class maintains a reference to the class loader that defines it. Because of this reference and retention, the class loader will occupy the memory for the entire class required to run the application. If an obsolete class loader is not correctly removed by the garbage collector in the Java virtual machine, the memory occupancy will increase and the process will fail.

일반적으로 "교체 가능한 클래스로더 관리부(350)"의 관리목록에서 클래스로더를 제거하는 것으로 자바가상머신의 가비지콜렉터에 의해 점유메모리가 해제되지만 다음1)의 특정 상황에서는 "교체 가능한 클래스로더(360)"에 대한 참조-보유가 유지되어 점유메모리가 해제되지 않는다.Generally, by removing the class loader from the management list of the "replaceable class loader management unit 350 ", the occupied memory is released by the garbage collector of the Java virtual machine, but the" replaceable class loader 360 "Quot; is retained and the occupied memory is not released.

- 다음1) - Next 1)

1. 시스템 클래스로더에서 로드한 클래스가 정적멤버(static member)로 "교체 가능한 클래스로더(360)"에서 로드한 클래스들을 참조-보유한다.1. The class loaded from the system class loader references and holds classes loaded from the "replaceable class loader (360)" as a static member.

2. 시스템 전체에서 소멸되지 않고 계속 유지되는 객체가 응용프로그램의 "교체 가능한 클래스로더(360)" 또는 "교체 가능한 클래스로더(360)"에서 로드한 클래스 클래스나 클래스로부터 생성된 객체를 계속 참조-보유한다.2. Objects that are persistent throughout the system continue to be referenced by objects created from class classes or classes loaded by the application's "replaceable class loader (360)" or "replaceable class loader (360) .

본 발명의 "교체 가능한 클래스로더(360)"는 더 이상 사용되지 않고 "교체 가능한 클래스로더 관리부(350)"에 의해 관리목록에서 제거될 때 상기한 참조-보유를 추적하여 이를 모두 제거하는 해제과정을 수행한다. "교체 가능한 클래스로더 관리부(350)"는 특정 "교체 가능한 클래스로더(360)"가 참조-보유 상태의 해제 과정을 수행해야 할 지를 판단하기 위해 다음2)의 방법을 사용한다. The "replaceable class loader 360" of the present invention is not used anymore, and is a release process that tracks and removes all of the above-mentioned reference-holds when they are removed from the management list by "replaceable class loader manager 350 & . The "replaceable class loader management unit 350" uses the method of the following 2) to determine whether a specific "replaceable class loader 360"

- 다음2)- Next 2)

1. "교체 가능한 클래스로더 관리부(350)"는 "교체 가능한 클래스로더(360)"를 응용프로그램에 배정할 때와 타 응용프로그램에서 참조하여 사용하기 위해 배정될 때마다 레퍼런스 객체를 생성하여 부여한다.1. The "replaceable class loader management unit 350" generates and assigns a reference object each time it is assigned to the application program when it is assigned to the application program and when it is allocated for use by another application program .

2. "교체 가능한 클래스로더 관리부(350)"는 "교체 가능한 클래스로더(360)"를 전용으로 사용하는 응용프로그램이 제거되거나 이를 참조하여 사용하는 응용프로그램이 제거될 때마다 레퍼런스 객체를 회수한다.
2. The "replaceable class loader management unit 350" retrieves the reference object whenever an application program dedicated to the "replaceable class loader 360" is removed or an application program used by referring to it is removed.

이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다. While the present invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. It will be appreciated by those skilled in the art that numerous changes and modifications may be made without departing from the invention. Accordingly, all such appropriate modifications and changes, and equivalents thereof, should be regarded as within the scope of the present invention.

100: 사용자 컴퓨터 200: 관리자 컴퓨터
300: 어플리케이션 서버 310: 서비스 처리부
320: 관리명령 처리부 330: 응용프로그램 관리부
340: 응용프로그램 350: 교체 가능한 클래스로더 관리부
360: 교체 가능한 클래스로더
100: user computer 200: administrator computer
300: Application server 310: Service processor
320: management command processing unit 330: application program management unit
340: application program 350: replaceable class loader management unit
360: Replaceable class loader

Claims (27)

응용프로그램을 사용하는 사용자 컴퓨터 및 응용프로그램을 교체하는 관리자 컴퓨터로부터 전송되는 요청신호에 따라 응용프로그램 무중단 교체를 수행하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템에 있어서,
상기 사용자 컴퓨터로부터 응용프로그램에 대한 사용 요청신호(서비스 요청신호)를 수신한 경우, 응용프로그램의 이름과 클라이언트의 아이피주소를 포함하는 사용자 식별정보를 추출하며, 추출된 사용자 식별정보를 이용하여 응용프로그램 관리부로 해당 사용자 컴퓨터가 사용할 응용프로그램을 요청하고, 응용프로그램 관리부로부터 전달된 응용프로그램을 사용자 컴퓨터로 전달하는 서비스 처리부;
상기 관리자 컴퓨터로부터 수정된 응용프로그램의 예비반영(predeploy), 최종반영(deploy), 취소(throwaway)를 포함하는 명령을 수신하여 응용프로그램 관리부가 이를 수행하도록 처리하는 관리명령 처리부;
응용프로그램을 관리하여, 응용프로그램의 이름을 기준으로 상기 서비스 처리부로 사용자 컴퓨터가 사용할 응용프로그램을 전달하며, 최종반영(deploy) 상태의 응용프로그램집합과 예비반영(predeploy) 상태의 응용프로그램집합을 구성하여 응용프로그램을 관리하는 응용프로그램 관리부; 및
교체 가능한 클래스로더들을 관리하여 응용프로그램이 교체될 때, 해당 응용프로그램에서 사용할 교체 가능한 클래스로더를 생성하여 전달하며, 응용프로그램들의 참조관계를 파악하여, 참조관계에 따라 함께 변경되어야 하는 응용프로그램들의 목록을 생성하고, 대상 응용프로그램들의 참조관계에 따라 교체 가능한 클래스로더들을 교체하고, 참조관계를 재설정함으로써 응용프로그램의 변경이 정확히 반영될 수 있도록 하는 교체 가능한 클래스로더 관리부; 를 포함하는 어플리케이션 서버; 를 포함하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
A system for non-disruptive application replacement in a Java-based business system that performs application non-disruptive replacement according to a request signal transmitted from a user computer using an application program and a manager computer replacing the application program,
When receiving the use request signal (service request signal) for the application program from the user computer, extracts the user identification information including the name of the application program and the IP address of the client, A service processing unit for requesting an application program to be used by the user computer by the management unit and delivering the application program delivered from the application program management unit to the user computer;
An administrative command processing unit for receiving an instruction including a predeployment, a final reflection, and a throwaway of the modified application program from the manager computer and processing the application program management unit to perform the instruction;
An application program is managed, and an application program to be used by the user computer is transferred to the service processing unit based on the name of the application program, and an application program set in the final deployed state and an application program set in the predeploy state are configured An application program management unit for managing an application program; And
When the application program is replaced by managing the replaceable class loaders, a replaceable class loader to be used by the application program is generated and transmitted. The application program references are identified, and a list of application programs A replaceable class loader management unit for replacing replaceable class loaders according to a reference relationship of target application programs and resetting a reference relationship so that a change of the application program can be accurately reflected; An application server; A system for non - disruptive replacement of applications in a Java - based business system, including.
제 1 항에 있어서,
상기 관리명령 처리부는,
예비반영(predeploy) 명령을 수신한 경우, 상기 관리자 컴퓨터로부터 사용자 식별정보를 전달받으며, 해당 사용자 컴퓨터로부터 응용프로그램에 대한 사용 요청신호를 수신하였을 때, 같은 이름을 가진 예비반영 상태의 응용프로그램이 사용될 수 있도록 처리하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The management command processing unit,
When receiving a predeploy command, the user identification information is received from the manager computer. When receiving a use request signal for the application program from the corresponding user computer, an application program in the preliminary reflecting state having the same name is used The system comprising: a processor configured to process a plurality of application programs;
제 1 항에 있어서,
상기 응용프로그램은,
고유의 이름을 가지고 있으며, 다른 응용프로그램이 참조하여 사용할 수 있는지 여부를 나타내는 shared 속성과, 자신이 참조하는 다른 응용프로그램 이름의 목록(references)을 속성으로 가지는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The application program includes:
A Java-based business system characterized by having a shared property indicating a unique name and whether or not another application can refer to and using the application, and a reference of another application program name referenced by the application. A system for non-stop replacement of applications.
제 1 항에 있어서,
상기 응용프로그램 관리부는,
상기 서비스 처리부로부터 응용프로그램 사용 요청신호를 수신한 경우, 사용하려고 하는 이름의 응용프로그램이 예비반영 상태의 응용프로그램집합에 존재하지 않는지 여부를 판단하되,
판단결과, 예비반영 상태의 응용프로그램집합에 해당 이름의 응용프로그램이 존재하지 않는 경우, 최종반영상태의 응용프로그램집합에서 해당 이름의 응용프로그램을 찾아, 사용자 컴퓨터가 사용할 수 있도록 서비스 처리부로 전달하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The application program management unit,
Wherein when the application program use request signal is received from the service processing unit, it is determined whether or not the application program having the name to be used exists in the application program group in the preliminary reflection state,
As a result of the determination, if there is no application program of the corresponding name in the application set of the pre-reflected state, the application program of the corresponding name is found in the finally reflected application program set, and the application program is transmitted to the service processing unit for use by the user computer A system for uninterrupted replacement of applications in Java based business systems.
제 4 항에 있어서,
상기 응용프로그램 관리부는,
판단결과, 예비반영 상태의 응용프로그램집합에 해당 이름의 응용프로그램이 존재하는 경우, 존재하는 해당 이름의 응용프로그램을 전달받은 사용자 식별정보가 예비반영 상태의 응용프로그램에 부여된 사용자 목록에 포함되는지 여부를 확인하되,
확인결과, 상기 사용자 목록에 포함될 경우, 예비반영상태의 응용프로그램을 사용자 컴퓨터가 사용할 수 있도록 서비스 처리부로 전달하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
5. The method of claim 4,
The application program management unit,
As a result of the determination, if there is an application program of the corresponding name in the application set of the preliminary reflecting state, whether the user identification information of the application having the corresponding corresponding name is included in the user list given to the application program of the preliminary reflecting state However,
And if it is included in the user list, transfers the pre-reflected application program to the service processor so that the user computer can use the pre-reflected application program.
제 5 항에 있어서,
상기 응용프로그램 관리부는,
확인결과, 포함되지 않을 경우, 최종반영 상태의 응용프로그램집합에서 해당 이름의 응용프로그램을 찾아, 사용자 컴퓨터가 사용할 수 있도록 서비스 처리부로 전달하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
6. The method of claim 5,
The application program management unit,
And if it is not included, the application program having the name is found in the application set of the final reflecting state, and the application program is transferred to the service processing unit for use by the user computer. .
제 1 항에 있어서,
상기 응용프로그램 관리부는,
상기 관리명령 처리부로부터 응용프로그램에 대한 예비반영 명령을 수신한 경우, 전달받은 클래스들을 포함한 리소스를 이용하여 교체 가능한 클래스로더 관리부로부터 새로운 교체 가능한 클래스로더를 부여받으며, 전달된 교체 가능한 클래스로더를 이용하여 응용프로그램을 생성하고, 예비반영 상태에서 사용할 사용자 식별정보 목록을 응용프로그램에 부여한 후, 해당 응용프로그램을 초기화 하며, 초기화된 응용프로그램을 즉각 사용할 수 있는 상태로 예비반영 응용프로그램집합에 보관하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The application program management unit,
When receiving a preliminary reflecting instruction for an application program from the management command processing unit, a new replaceable class loader is given from a replaceable class loader management unit using a resource including the received classes, and using the delivered replaceable class loader The application program is created and a list of user identification information to be used in the preliminary reflecting state is given to the application program and then the initialized application program is initialized and the initialized application program is stored in the preliminary reflecting application program set in a state ready for immediate use A system for non - disruptive replacement of applications in a Java - based business system.
제 1 항에 있어서,
상기 응용프로그램 관리부는,
상기 관리명령 처리부로부터 예비반영 상태의 응용프로그램에 대한 최종반영 명령을 수신한 경우, 예비반영 응용프로그램 집합에서 해당 이름의 응용프로그램을 확인하여 이를 최종반영 응용프로그램집합에 이관하고, 기존에 최종반영 응용프로그램집합에 있던 같은 이름의 응용프로그램을 제거하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The application program management unit,
When receiving the final reflecting command for the application program of the preliminary reflecting state from the management command processing unit, the application program of the corresponding name is checked in the preliminary reflecting application program set and transferred to the final reflecting application program set, A system for non-disruptive application replacement in a Java-based business system, characterized in that an application of the same name in the program set is removed.
제 1 항에 있어서,
상기 응용프로그램 관리부는,
상기 관리명령 처리부로부터 예비반영 상태의 응용프로그램에 대한 반영취소 명령이 수신되거나, 응용프로그램에 대한 예비반영 명령에 부여된 최종반영 대기시간이 초과되었을 때, 예비반영 응용프로그램집합에서 해당 이름의 응용프로그램을 제거하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The application program management unit,
When a reflect cancellation command for the application program in the preliminary reflecting state is received from the management command processing unit or when the final reflecting waiting time given to the preliminary reflecting command for the application program is exceeded, Wherein the system is configured to remove an application program from the application program in a Java based business system.
제 1 항에 있어서,
상기 응용프로그램 관리부는,
응용프로그램 A에서 객체 A01을 생성할 때, 상기 객체 A01에 포함된 필드 객체가 참조하는 다른 응용프로그램 B에 존재할 경우, 응용프로그램 A가 상기 객체 A01 생성과정에서 참조하는 응용프로그램 B에 해당 객체 B01을 요청하여 전달받고, 객체 A01에 할당하도록 관리하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The application program management unit,
When an application A creates an object A01 in another application B referenced by a field object included in the object A01, the application A sends the corresponding object B01 to the application B referenced in the process of creating the object A01 The object A01, and the object A01. The system for continuously changing an application program in a Java-based business system is provided.
제 1 항에 있어서,
상기 교체 가능한 클래스로더는,
응용프로그램의 구현 클래스들을 로드하기 위한 교체 가능한 클래스로더로서, 다른 교체 가능한 클래스로더에서 참조하여 사용할 수 있는지 여부를 나타내는 shared 속성과, 참조하는 다른 클래스로더의 목록(refrences)을 속성으로 가지는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
Wherein the replaceable class loader comprises:
As a replaceable class loader for loading implementation classes of an application program, it is characterized by having a shared property indicating whether or not it can be referred to by another replaceable class loader, and a refinement of another class loader to be referred to as an attribute A system for non - disruptive application replacement in a Java - based business system.
제 1 항에 있어서,
상기 교체 가능한 클래스로더 관리부는,
상기 응용프로그램 관리부로부터 신규 응용프로그램을 위한 교체 가능한 클래스로더 요청이 발생하면, 응용프로그램을 위한 리소스를 이용하여 새로운 교체 가능한 클래스로더를 생성하여 응용프로그램 관리부로 전달하고, 대상 응용프로그램이 다른 응용프로그램을 참조하고 있는지 여부를 판단하되,
판단결과, 대상 응용프로그램이 다른 응용프로그램을 참조하고 있는 경우, 참조하는 응용프로그램을 위한 교체 가능한 클래스로더를 신규 응용프로그램을 위한 교체 가능한 클래스로더에서 참조하여 사용할 수 있도록 참조 클래스로더 목록에 추가하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The replaceable class loader management unit includes:
And when a replaceable class loader request for a new application program is generated from the application program management unit, a new replaceable class loader is generated using the resource for the application program and transferred to the application program management unit, To determine whether or not it is referenced,
If, as a result of the determination, the target application is referencing another application, it may be necessary to add a replaceable class loader for the referencing application to the reference class loader list for reference in a replaceable class loader for the new application A system for uninterrupted replacement of applications in Java based business systems.
제 12 항에 있어서,
상기 교체 가능한 클래스로더 관리부는,
판단결과, 다른 응용프로그램에서 대상 응용프로그램을 참조하고 있는 경우, 해당 응용프로그램을 위한 교체 가능한 클래스로더의 참조 클래스로더 목록에 이를 추가하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
13. The method of claim 12,
The replaceable class loader management unit includes:
The application program is added to the reference class loader list of the replaceable class loader for the application program when the result of the judgment is that the application program is referenced by another application program. For the system.
제 1 항에 있어서,
상기 교체 가능한 클래스로더 관리부는,
상기 응용프로그램 관리부로부터 응용프로그램의 예비반영 요청신호를 수신할 경우, 수정된 응용프로그램을 위한 교체 가능한 클래스로더를 생성하여 응용프로그램 관리부로 전달하고, 대상 응용프로그램을 참조하는 다른 응용프로그램들도 함께 변경되어 예비반영상태로 진입할 수 있도록 이들을 위한 교체 가능한 클래스로더를 신규 생성하며, 신규 생성된 교체 가능한 클래스로더들을 위해 참조관계에 따라 클래스로더 참조 속성을 부여하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
The replaceable class loader management unit includes:
When receiving the preliminary reflection request signal of the application program from the application program management unit, a replaceable class loader for the modified application program is generated and transmitted to the application program management unit, and other application programs referencing the target application program are changed And a class loader reference attribute is assigned according to a reference relationship for newly created replaceable class loaders, wherein the class loader reference attribute is assigned to the newly created replaceable class loader, A system for non-stop replacement of applications.
제 1 항에 있어서,
다른 응용프로그램을 참조하지 않는 응용프로그램 B를 위한 교체 가능한 클래스로더 B가 클래스와 리소스들을 로드하는 과정에서, 상기 교체 가능한 클래스로더 관리부는,
상기 응용프로그램 관리부로부터 응용프로그램 B에서의 클래스 또는 리소스 로드 요청이 전달될 경우, 교체 가능한 클래스로더 B가 자신을 위한 리소스 목록에서 대상 클래스 또는 리소스를 로드하도록 관리하는 것을 특징으로 하며, 리소스 목록에 대상 클래스 또는 리소스가 존재하지 않을 경우, 시스템 클래스로더에 이를 위임하여 로드된 결과를 응용프로그램에 전달하도록 관리하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
In the process of loading a class and resources by a replaceable class loader B for an application program B that does not refer to another application program,
When a class or a resource load request from the application program B is delivered from the application program management unit, the replaceable class loader B manages to load the target class or resource from the resource list for itself, And if the class or resource does not exist, delegates it to the system class loader, and manages to transfer the loaded result to the application program.
제 1 항에 있어서,
다른 응용프로그램 B를 참조하는 응용프로그램 A를 위해 교체 가능한 클래스로더 A가 클래스와 리소스들을 로드하는 과정에서, 상기 교체 가능한 클래스로더 관리부는,
상기 응용프로그램 관리부로부터 응용프로그램 A에서의 클래스 또는 리소스 로드 요청이 전달될 경우, 교체 가능한 클래스로더 A가 자신을 위한 리소스 목록에서 대상 클래스 또는 리소스를 로드하도록 관리하는 것을 특징으로 하며, 리소스 목록에 대상 클래스 또는 리소스가 존재하지 않을 경우, 교체 가능한 클래스로더 A를 참조하는 교체 가능한 클래스로더 B에 이를 위임하도록 관리하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
The method according to claim 1,
In the process of loading a class and resources by a replaceable class loader A for an application program A that refers to another application program B,
Wherein the replaceable class loader A manages to load the target class or resource from the resource list for itself when a class or resource load request from the application program A is delivered from the application program management unit, And if the class or resource does not exist, manages to delegate it to a replaceable class loader B that refers to a replaceable class loader A, and to a system for non-stop replacement of an application program in a Java-based business system.
제 16 항에 있어서,
상기 교체 가능한 클래스로더 관리부는,
로드 요청을 수신한 교체 가능한 클래스로더 B가 자신을 위한 리소스 목록에서 클래스 또는 리소스를 찾도록 하며, 대상 리소스가 존재한다면 이를 전달하도록 관리하며, 교체 가능한 클래스로더 A에서 참조하는 모든 교체 가능한 클래스로더들을 이용하여도 대상 클래스 또는 리소스를 찾을 수 없을 경우, 시스템 클래스로더에 로드를 위임하도록 관리하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템.
17. The method of claim 16,
The replaceable class loader management unit includes:
The replaceable class loader B having received the load request finds the class or resource in the resource list for itself, manages to deliver the target resource if it exists, and updates all replaceable class loaders referenced by the replaceable class loader A Wherein the load is delegated to a system class loader when a target class or resource can not be found even if the target class or resource can not be found.
다른 응용프로그램을 참조하지 않는 응용프로그램이 수정되어 예비반영되는 과정에서의 처리흐름과 예비반영이 진행 중인 상태에서의 사용자 요청 처리흐름 방법에 있어서,
(a) 어플리케이션 서버의 관리명령 처리부가 수정된 응용프로그램에서 사용할 리소스와 응용프로그램의 이름, 예비반영상태의 응용프로그램을 사용할 사용자 식별정보 목록을 포함한 예비반영 요청신호를 관리자 컴퓨터로부터 수신하여 응용프로그램 관리부로 전송하는 단계;
(b) 응용프로그램 관리부가 기존에 같은 이름의 응용프로그램 A가 최종반영 응용프로그램집합에 존재하는지 여부를 판단하는 단계;
(c) 상기 (b) 단계의 판단결과, 존재할 경우, 상기 응용프로그램 관리부가 응용프로그램 A-1을 생성하고, 응용프로그램 A-1에서 사용할 리소스를 복사한 후, 복사된 리소스의 경로와 함께 신규 교체 가능한 클래스로더 A-1을 교체 가능한 클래스로더 관리부로 요청하는 단계;
(d) 상기 교체 가능한 클래스로더 관리부가 전달된 교체 가능한 클래스로더 A-1을 생성한 후, 전달된 경로의 리소스를 사용하도록 설정하여 응용프로그램 A-1에서 사용할 수 있도록 응용프로그램 관리부로 전달하는 단계; 및
(e) 상기 응용프로그램 관리부가 응용프로그램 A-1이 준비되면 이를 사용할 사용자식별 정보 목록을 부여한 후, 예비반영 응용프로그램 집합에 등록하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
A method for processing a user request flow in a state in which an application program not referring to another application program is modified and preliminarily reflected and a preliminary reflection is in progress,
(a) receiving, from the manager computer, a preliminary reflecting request signal including a name of a resource and an application program to be used in the modified application program and a user identification information list to be used in the preliminary reflecting state, ;
(b) determining whether the application program management unit has existing application program A having the same name in the final reflected application program set;
(c) If it is determined in step (b) that the application program A-1 exists, the application program manager generates an application program A-1, copies resources to be used in the application program A-1, Requesting a replaceable class loader A-1 from a replaceable class loader management section;
(d) generating a replaceable class loader A-1 to which the replaceable class loader management unit has delivered, using the resource of the delivered path, and delivering the resource to the application program manager for use in the application program A-1 ; And
(e) when the application program management unit has prepared the application program A-1, assigning the user identification information list to be used and registering the list in the pre-reflected application program set; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
제 18 항에 있어서,
(f) 상기 응용프로그램 A-1이 예비반영 응용프로그램집합에 등록되기 이전 상태에서, 사용자 컴퓨터의 서비스 요청신호를 수신한 경우, 상기 응용프로그램 관리부가 응용프로그램 A를 사용하도록 서비스 처리부를 통해 사용자 컴퓨터로 전달하며, 상기 응용프로그램 A-1이 예비반영 응용프로그램집합에 등록된 상태에서, 사용자 컴퓨터의 서비스 요청신호를 수신할 경우, 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램 A-1을 획득하는 단계;
(g) 상기 응용프로그램 A-1의 사용자 식별정보 목록에 요청한 사용자 컴퓨터의 식별정보가 포함되어 있는 경우, 상기 응용프로그램 관리부가 예비반영 상태의 응용프로그램 A-1을 사용하도록 해당 사용자 컴퓨터로 전달하며, 사용자 식별정보 목록에 요청한 사용자 컴퓨터의 식별정보가 포함되어 있지 않은 경우, 최종반영 상태의 응용프로그램 A를 사용할 수 있도록 사용자 컴퓨터로 전달하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
19. The method of claim 18,
(f) If the application program A-1 receives the service request signal of the user computer in a state before the application program A-1 is registered in the preliminary reflecting application program set, And when receiving the service request signal of the user computer in a state where the application program A-1 is registered in the preliminary reflecting application program set, acquires the application program A-1 of the requested name in the preliminary reflecting application program set ;
(g) If the identification information of the user computer requested is included in the user identification information list of the application program A-1, the application program management unit transfers the application program A-1 in the preliminary reflecting state to the corresponding user computer If the identification information of the requested user computer is not included in the user identification information list, transferring the application program A to the user computer so as to use the application program A in the final reflecting state; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
제 18 항에 있어서,
(h) 응용프로그램의 예비반영 요청신호를 전송할 때 전달된 사용자 식별정보가 관리자 컴퓨터의 사용자 식별정보이고, 관리자 컴퓨터의 서비스 요청신호를 통해 수신한 경우, 상기 응용프로그램 관리부가 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램 A-1을 획득하여 사용하도록 관리자 컴퓨터로 전달하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
19. The method of claim 18,
(h) when the user identification information transmitted when the preliminary reflection request signal of the application program is transmitted is the user identification information of the manager computer, and when the user identification information is received through the service request signal of the manager computer, Acquiring the application A-1 of the requested name and delivering it to the manager computer for use; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
다른 응용프로그램을 참조하는 응용프로그램이 수정되어 예비반영되는 과정에서의 처리흐름과 예비반영이 진행 중인 상태에서의 사용자 요청 처리흐름 방법에 있어서,
(a) 어플리케이션 서버의 관리명령 처리부가 수정된 응용프로그램에서 사용할 리소스와 응용프로그램의 이름, 예비반영상태의 응용프로그램을 사용할 사용자 식별정보 목록을 포함한 예비반영 요청신호를 관리자 컴퓨터로부터 수신하여 응용프로그램 관리부로 전송하는 단계;
(b) 상기 응용프로그램 관리부가 기존에 같은 이름의 응용프로그램 B가 최종반영 응용프로그램집합에 존재하는지 여부를 판단하는 단계;
(c) 상기 (b) 단계의 판단결과, 존재할 경우 응용프로그램 B-1을 생성하고, 응용프로그램 B-1에서 사용할 리소스를 복사한 후, 복사된 리소스의 경로와 함께 신규 교체 가능한 클래스로더 B-1을 교체 가능한 클래스로더 관리부로 요청하는 단계;
(d) 상기 교체 가능한 클래스로더 관리부가 전달된 교체 가능한 클래스로더 B-1을 생성한 후, 전달된 경로의 리소스를 사용하도록 설정하는 단계;
(e) 상기 교체 가능한 클래스로더 관리부가 관리중인 교체 가능한 클래스로더들의 참조관계를 분석하여, 기존에 존재하는 교체 가능한 클래스로더 B를 참조하여 사용하는 교체 가능한 클래스로더 A를 발견하고, 리소스를 복사한 후, 교체 가능한 클래스로더 A-1을 생성하는 단계;
(f) 상기 교체 가능한 클래스로더 관리부가 신규 생성된 교체 가능한 클래스로더들 간의 참조관계를 재설정하고, 기존에 사용되던 교체 가능한 클래스로더들의 참조관계에 따른 레퍼런스 정보를 회수하는 단계;
(g) 상기 교체 가능한 클래스로더 관리부가 응용프로그램에 교체된 교체 가능한 클래스로더 A-1과 교체 가능한 클래스로더 B-1을 응용프로그램 A-1과 응용프로그램 B-1에서 사용하도록 전달하는 단계; 및
(h) 상기 응용프로그램 관리부가 참조관계에 따라 응용프로그램 A-1을 신규 생성하여, 응용프로그램 B-1과 응용프로그램 A-1에 이를 사용할 사용자식별 정보 목록을 부여한 후 예비반영 응용프로그램 집합에 등록하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
In a method for processing a user request flow in a state in which an application program referring to another application program is modified and preliminarily reflected and a preliminary reflection is in progress,
(a) receiving, from the manager computer, a preliminary reflecting request signal including a name of a resource and an application program to be used in the modified application program and a user identification information list to be used in the preliminary reflecting state, ;
(b) determining whether the application program management unit has existing application program B having the same name in the final reflected application program set;
(c) if it is determined in step (b) that the application program B-1 exists, copies the resource to be used in the application program B-1, 1 to a replaceable class loader management unit;
(d) creating a replaceable class loader B-1 to which the replaceable class loader management unit has transferred and setting up to use resources of the transferred path;
(e) analyzing a reference relationship of the replaceable class loaders being managed by the replaceable class loader management unit, discovering a replaceable class loader A to be used with reference to the existing replaceable class loader B existing therein, , Generating a replaceable class loader A-1;
(f) the replaceable class loader management unit reestablishes a reference relationship between the newly created replaceable class loaders, and retrieves reference information according to the reference relationship of the replaceable class loaders that have been used previously;
(g) forwarding the replaceable class loader management unit to use in the application program A-1 and the application program B-1 a replaceable class loader A-1 and a replaceable class loader B-1 in which the replaceable class loader management unit has been replaced by the application program; And
(h) The application program management section newly generates the application program A-1 according to the reference relationship, assigns the application program B-1 and the application program A-1 to the user identification information list to be used therein, ; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
제 21 항에 있어서,
(i) 응용프로그램 B-1과 참조 분석의 결과로 신규 생성된 응용프로그램 A-1이 예비반영 응용프로그램집합에 등록되기 이전 상태에서, 사용자 컴퓨터의 서비스 요청신호를 수신한 경우, 상기 응용프로그램 관리부가 요청된 응용프로그램의 이름에 따라 응용프로그램 A 또는 응용프로그램 B를 사용하도록 서비스 처리부에 전달하며, 응용프로그램(340) B-1과 참조 분석의 결과로 신규 생성된 응용프로그램 A-1이 예비반영 응용프로그램집합에 등록된 상태에서, 사용자 컴퓨터의 서비스 요청신호를 수신한 경우, 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램 B-1 또는 응용프로그램 A-1을 획득하는 단계;
(j) 획득된 응용프로그램의 사용자 식별정보 목록에 요청한 사용자 컴퓨터(100)의 식별정보가 포함되어 있는 경우, 상기 응용프로그램 관리부가 예비반영 상태의 응용프로그램 B-1 또는 응용프로그램 A-1이 해당 사용자 컴퓨터로 사용되도록 전달하며, 사용자 식별정보 목록에 사용자 컴퓨터의 식별정보가 포함되어 있지 않은 경우, 최종반영 상태의 응용프로그램 A 또는 응용프로그램 B를 사용할 수 있도록 사용자 컴퓨터로 전달하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
22. The method of claim 21,
(i) In a case where a service request signal of the user computer is received in a state before the application program B-1 and the application program A-1 newly generated as a result of the reference analysis are registered in the preliminary reflecting application program set, (340) B-1 and the application program A-1 newly generated as a result of the reference analysis are transferred to the service processing unit according to the name of the requested application program, Acquiring an application program B-1 or application program A-1 of the requested name in the reserved reflection application program set when the service request signal of the user computer is received in the state registered in the application program set;
(j) If the identification information of the user computer 100 is included in the acquired user identification information list of the application program, the application program management unit determines whether the application program B-1 or the application program A-1 If the identification information of the user computer is not included in the user identification information list, transferring the application program A or the application program B in the final reflecting state to the user computer so that the application program A or the application program B can be used; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
제 21 항에 있어서,
(k) 응용프로그램의 예비반영 요청신호를 전송할 때 전달된 사용자 식별정보가 관리자 컴퓨터의 사용자 식별정보이고, 관리자 컴퓨터의 서비스 요청신호를 수신한 경우, 상기 응용프로그램 관리부가 예비반영 응용프로그램집합에서 요청된 이름의 응용프로그램을 획득하여 관리자 컴퓨터로 전달하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
22. The method of claim 21,
(k) when the user identification information transmitted when transmitting the preliminary reflection request signal of the application program is the user identification information of the manager computer and when the service request signal of the manager computer is received, Acquiring an application program having the name of the application; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
예비반영된 응용프로그램 A-1과 응용프로그램 B-1을 최종반영하는 과정에서의 처리흐름과, 최종반영이 완료된 상태에서의 사용자 요청 처리흐름 방법에 있어서,
(a) 어플리케이션 서버의 관리명령 처리부가 최종반영할 응용프로그램(340) A-1과 응용프로그램(340) B-1의 이름을 포함한 최종반영 요청신호를 관리자 컴퓨터로부터 수신하여 응용프로그램 관리부로 전송하는 단계;
(b) 상기 응용프로그램 관리부가 예비반영 응용프로그램 집합에서 응용프로그램 A-1을 제거하고, 교체 가능한 클래스로더 A-1이 최종반영상태로 사용되고 있음을 교체 가능한 클래스로더 관리부로 전달하는 단계;
(c) 상기 응용프로그램 관리부가 예비반영 응용프로그램집합에서 응용프로그램 B-1을 제거하고, 교체 가능한 클래스로더 B-1이 최종반영상태로 사용되고 있음을 교체 가능한 클래스로더 관리부로 전달하는 단계;
(d) 상기 응용프로그램 관리부가 기존에 사용되고 있던 응용프로그램 A를 최종반영 응용프로그램집합에서 제거하고, 응용프로그램 A-1을 대체하여 등록한 후, 교체 가능한 클래스로더 A에의 참조 관계 해지를 교체 가능한 클래스로더 관리부로 전달하는 단계;
(e) 상기 교체 가능한 클래스로더 관리부가 교체 가능한 클래스로더 A에의 참조 관계를 해지하면서, 해당 교체 가능한 클래스로더 A가 사용하던 리소스들을 삭제하는 단계;
(f) 상기 응용프로그램 관리부가 기존에 사용되고 있던 응용프로그램 B를 최종반영 응용프로그램집합에서 제거하고, 응용프로그램 B-1을 대체하여 등록한 후, 교체 가능한 클래스로더 B에의 참조 관계 해지를 교체 가능한 클래스로더 관리부로 전달하는 단계; 및
(g) 상기 교체 가능한 클래스로더 관리부가 교체 가능한 클래스로더 B에의 참조 관계를 해지하면서, 해당 교체 가능한 클래스로더 B가 사용하던 리소스들을 삭제하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
A process flow in a process of finally reflecting the pre-reflected application program A-1 and an application program B-1, and a user request process flow process in a final reflection process,
(a) The management command processing unit of the application server receives from the administrator computer a final reflection request signal including the name of the application program 340 A-1 and the application program 340 B-1 to be finally reflected, and transmits the final reflection request signal to the application program management unit step;
(b) removing the application program A-1 from the pre-reflected application program set and transferring to the replaceable class loader management unit that the replaceable class loader A-1 is being used as a final reflecting state;
(c) removing the application program B-1 from the pre-reflected application program set and transferring to the replaceable class loader management unit that the replaceable class loader B-1 is being used as the final reflecting state;
(d) The application program manager removes the previously used application program A from the final reflected application program set, replaces and registers the application program A-1, and then releases the reference relationship to the replaceable class loader A with a replaceable class loader To the management unit;
(e) removing the resources used by the replaceable class loader A while the replaceable class loader management unit terminates the reference relationship to the replaceable class loader A;
(f) The application program manager removes the previously used application program B from the final reflected application program set, replaces and registers the application program B-1, and then releases the reference relationship to the replaceable class loader B with a replaceable class loader To the management unit; And
(g) removing the resources used by the replaceable class loader B while releasing the reference relationship to the replaceable class loader B by the replaceable class loader management unit; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
제 24 항에 있어서,
(h) 응용프로그램 A-1과 응용프로그램 B-1이 최종반영된 이후, 사용자 컴퓨터로부터 서비스 요청신호를 수신한 경우, 상기 응용프로그램 관리부가 요청된 이름의 응용프로그램을 최종반영 응용프로그램집합에서 획득하여 이를 서비스 처리부를 통해 사용자 컴퓨터로 전달하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
25. The method of claim 24,
(h) When the application program A-1 and the application program B-1 are finally reflected, when the service request signal is received from the user computer, the application program management unit acquires the application program of the requested name from the final reflecting application program set Transferring the program to a user computer through a service processing unit; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
예비반영된 응용프로그램 A-1과 응용프로그램 B-1이 관리자 컴퓨터 또는 예비반영 상태의 응용프로그램 A-1과 응용프로그램 B-1을 사용하도록 지정된 사용자 컴퓨터에 의해 사용되었으나, 오류가 발견되어 관리자 컴퓨터가 반영을 취소하거나 예비반영 시에 지정한 대기시간이 경과하였을 때 반영이 취소되는 과정에서의 처리흐름과, 반영취소 이후 사용자 요청 처리흐름 방법에 있어서,
(a) 어플리케이션 서버의 관리명령 처리부를 통해 관리자 컴퓨터로부터 반영 취소할 응용프로그램 A-1과 응용프로그램 B-1의 이름을 포함한 반영취소 요청신호를 수신하거나, 예비반영 시에 지정한 대기시간이 경과되었을 때, 응용프로그램 관리부가 예비반영 응용프로그램 집합에서 응용프로그램 A-1을 제거하고, 교체 가능한 클래스로더 관리부에 교체 가능한 클래스로더 A-1에의 참고 관계 해지를 전달하는 단계;
(b) 교체 가능한 클래스로더 관리부가 교체 가능한 클래스로더 A-1에의 참고 관계를 해지하면서, 해당 교체 가능한 클래스로더 A-1이 사용하던 리소스들을 삭제하는 단계;
(c) 상기 응용프로그램 관리부가 예비반영 응용프로그램 집합에서 응용프로그램 B-1을 제거하고, 상기 교체 가능한 클래스로더 관리부에 교체 가능한 클래스로더 B-1에의 참고 관계 해지를 전달하는 단계; 및
(d) 상기 교체 가능한 클래스로더 관리부가 교체 가능한 클래스로더 B-1을 제거하면서, 해당 교체 가능한 클래스로더 B-1이 사용하던 리소스들을 삭제하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
Preliminary application A-1 and application B-1 are used by the administrator computer or by a user computer designated to use application A-1 and application B-1 in the pre-reflected state, The process of canceling the reflection or canceling the reflection when the specified waiting time elapses at the time of the preliminary reflection, and the method of the user request processing flow after the reflection canceling,
(a) When the reflection cancel request signal including the names of the application program A-1 and the application program B-1 to be canceled from the administrator computer is received through the management command processing unit of the application server, or the wait time specified in the preliminary reflection has elapsed , The application program manager removes the application program A-1 from the pre-reflected application program set and delivers the reference-related revocation to the replaceable class loader A-1 to the replaceable class loader management module;
(b) deleting the resources used by the replaceable class loader A-1 while releasing the reference relationship to the replaceable class loader A-1;
(c) the application program management unit removes application program B-1 from the pre-reflected application program set and delivers the reference-related revocation to the replaceable class loader B-1 to the replaceable class loader management unit; And
(d) removing the resources used by the replaceable class loader B-1 while the replaceable class loader management unit removes the replaceable class loader B-1; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
제 26 항에 있어서,
(e) 응용프로그램 A-1과 응용프로그램 B-1이 반영 취소된 이후, 사용자 컴퓨터로부터 서비스 요청신호를 수신한 경우, 상기 응용프로그램 관리부가 요청된 이름의 응용프로그램을 최종반영 응용프로그램집합에서 획득하여 이를 서비스 처리부를 통해 사용자 컴퓨터로 전달하는 단계; 를 포함하는 것을 특징으로 하는 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 방법.
27. The method of claim 26,
(e) If a service request signal is received from the user computer after application program A-1 and application program B-1 are reflected, the application program management unit acquires an application program of the requested name from the final reflecting application program set And transmitting it to a user computer through a service processing unit; The method comprising the steps of: determining whether the application program is unchanged in the Java based business system.
KR1020120101526A 2012-09-13 2012-09-13 System and method for non-disruptive replacing of application in java based system KR101463856B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120101526A KR101463856B1 (en) 2012-09-13 2012-09-13 System and method for non-disruptive replacing of application in java based system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120101526A KR101463856B1 (en) 2012-09-13 2012-09-13 System and method for non-disruptive replacing of application in java based system

Publications (2)

Publication Number Publication Date
KR20140035103A KR20140035103A (en) 2014-03-21
KR101463856B1 true KR101463856B1 (en) 2014-11-19

Family

ID=50645205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120101526A KR101463856B1 (en) 2012-09-13 2012-09-13 System and method for non-disruptive replacing of application in java based system

Country Status (1)

Country Link
KR (1) KR101463856B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102116814B1 (en) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 Application hot deploy method to guarentee application version consistency and computer program stored in computer readable medium therfor
KR102116813B1 (en) * 2018-06-22 2020-05-29 주식회사 티맥스 소프트 Unnecessary resource recognition and release plan in application hot deploy on distributed system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233171A (en) 1999-07-13 2011-11-17 Oracle America Inc Method and apparatus for implementing individual class loaders

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233171A (en) 1999-07-13 2011-11-17 Oracle America Inc Method and apparatus for implementing individual class loaders

Also Published As

Publication number Publication date
KR20140035103A (en) 2014-03-21

Similar Documents

Publication Publication Date Title
CN107547596B (en) Cloud platform control method and device based on Docker
CN107005426B (en) Method and device for managing life cycle of virtual network function
JP5884578B2 (en) Accelerator management device, accelerator management method, and input / output device
RU2653292C2 (en) Service migration across cluster boundaries
US8769040B2 (en) Service providing system, a virtual machine server, a service providing method, and a program thereof
CN103399778B (en) A kind of virtual machine online bulk migration method and apparatus
CN113296792B (en) Storage method, device, equipment, storage medium and system
CN108984266B (en) Virtual machine management method, device and system
US20090260007A1 (en) Provisioning Storage-Optimized Virtual Machines Within a Virtual Desktop Environment
JP2009232207A (en) Network-switching apparatus, server system, and server migration method in the server system
CN111162941B (en) Method for automatically managing virtual IP (Internet protocol) in Kubernetes environment
CN109614167B (en) Method and system for managing plug-ins
WO2006081503A1 (en) Management of software images for computing nodes of a distributed computing system
JP2004280485A (en) Computer system
JP2008041093A (en) System and method for distributing virtual input/output operation for many logical partitions
CN113366802B (en) State controller operating in kubrennetes system and method of operating the same
WO2015083255A1 (en) Computer system and virtual machine control method
CN113382077B (en) Micro-service scheduling method, micro-service scheduling device, computer equipment and storage medium
US20090248875A1 (en) Socket Management Device and Socket Management Method
KR101463856B1 (en) System and method for non-disruptive replacing of application in java based system
KR102519721B1 (en) Apparatus and method for managing computing resource
JP5294014B2 (en) File sharing method, computer system, and job scheduler
JP2011108014A (en) Virtual machine management device, virtual machine management method, and virtual machine management program
EP2843548A1 (en) Method, system, and program for scheduling jobs in a computing system
CN103841200A (en) Method and device for controlling software licensing

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
FPAY Annual fee payment

Payment date: 20160608

Year of fee payment: 7