KR101692964B1 - Provisioning apparatus and method - Google Patents
Provisioning apparatus and method Download PDFInfo
- Publication number
- KR101692964B1 KR101692964B1 KR1020160087279A KR20160087279A KR101692964B1 KR 101692964 B1 KR101692964 B1 KR 101692964B1 KR 1020160087279 A KR1020160087279 A KR 1020160087279A KR 20160087279 A KR20160087279 A KR 20160087279A KR 101692964 B1 KR101692964 B1 KR 101692964B1
- Authority
- KR
- South Korea
- Prior art keywords
- provisioning
- task
- timer
- unit
- resource
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G06F17/30345—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
본 발명은 프로비저닝 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 무한 대기를 방지할 수 있는 프로비저닝 장치 및 그 방법에 관한 것이다.The present invention relates to a provisioning apparatus and a method thereof, and more particularly, to a provisioning apparatus and a method thereof capable of preventing infinite waiting.
신입사원이 입사하거나 조직 내 인사이동 또는 직무 변경이 발생하여 사용자가 접근하는 리소스(resource)의 범주가 변경되었을 때, 리소스 접근에 필요한 계정을 생성하거나 접근 권한을 변경하여야 하는데, 이러한 일련의 과정을 프로비저닝(provisioning)이라고 한다.When a new employee enters a company, a personnel shift or job change occurs in the organization, and a category of a resource accessed by the user changes, the account necessary for accessing the resource or change the access right must be changed. This is called provisioning.
사용자가 접근하는 리소스는 액티브 디렉토리(active directory), 이메일, 그룹웨어, ERP(Enterprise Resource Planning) 등의 다양한 애플리케이션나 시스템, 또는 각종 그룹이나 데이터베이스일 수 있다. 각 사용자마다 접근하는 리소스의 종류가 상이할 뿐만 아니라, 각 사용자가 접근하는 리소스의 개수 또한 많게는 수천 개 이상이다.The resources that the user accesses may be various applications or systems such as an active directory, email, groupware, ERP (Enterprise Resource Planning), or various groups or databases. Not only are there different types of resources to be accessed for each user, but also the number of resources that each user accesses is more than a few thousand.
그러나 리소스 자체의 문제 또는 네트워크 문제 등으로 인해 일부 리소스에 대한 프로비저닝에 많은 시간이 소요되거나 프로비저닝이 종료되지 아니한 채 계속 대기 상태가 되면, 이후 프로비저닝 작업이 적체되어 전체 프로비저닝 시간이 오래 걸릴 뿐만 아니라, 최악의 경우 전체 프로비저닝 작업이 무한 대기하는 상태가 될 수도 있다.However, if provisioning for some resources is time consuming due to problems with the resource itself or network problems, or if the provisioning process is not terminated, the provisioning process may become overloaded and the entire provisioning process may take a long time, , The entire provisioning operation may be in an infinite wait state.
본 발명이 이루고자 하는 기술적 과제는, 프로비저닝의 무한 대기를 방지하고 신속하고 정확한 프로비저닝을 수행할 수 있는 방법 및 그 장치를 제공하는 데 있다.Disclosure of Invention Technical Problem [8] The present invention provides a method and apparatus for preventing infinite waiting of provisioning and performing rapid and accurate provisioning.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 프로비저닝 장치의 일 예는, 정상 동작 중인 리소스에 대한 프로비저닝 작업을 수신하여 태스크 큐에 저장하는 적어도 하나 이상의 어댑터; 상기 태스크 큐에 저장된 프로비저닝 작업에 따라 리소스에 프로비저닝을 수행하는 적어도 하나 이상의 작업수행부; 상기 적어도 하나 이상의 작업수행부에 대한 타이머를 구동하는 타이머관리부; 타이머 만료된 작업수행부에 대한 리스트를 저장하고 관리하는 작업관리부; 및 타이머 만료된 작업수행부의 수가 일정 개수 이상인 리소스의 상태 정보를 중지 상태로 변경하는 리소스관리부;를 포함한다.According to an aspect of the present invention, there is provided a provisioning apparatus comprising: at least one adapter for receiving a provisioning task for a resource in normal operation and storing the provisioning task in a task queue; At least one task performing unit for provisioning resources according to a provisioning task stored in the task queue; A timer managing unit for driving a timer for the at least one job performing unit; A task management unit for storing and managing a list of timer expired task performing units; And a resource management unit for changing status information of a resource whose number of timer expired job performing units is equal to or more than a predetermined number to a suspended state.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 프로비저닝 방법의 일 예는, 적어도 하나 이상의 제1 쓰레드를 이용하여 정상 동작 중인 대상 리소스에 대한 프로비저닝 작업을 수신하여 태스크 큐에 저장하는 단계; 프로비저닝 작업을 수행하는 적어도 하나 이상의 제2 쓰레드에 대한 타이머를 구동하는 단계; 상기 제2 쓰레드를 통해 태스크 큐에 저장된 프로비저닝 작업을 수행하는 단계; 타이머 만료된 제2 쓰레드에 대한 리스트를 저장하는 단계; 및 타이머 만료된 제2 쓰레드의 수가 일정 개수 이상인 리소스의 상태 정보를 중지 상태로 변경하는 단계;를 포함한다.According to another aspect of the present invention, there is provided a provisioning method comprising: receiving a provisioning task for a target resource in normal operation using at least one first thread and storing the provisioning task in a task queue; Driving a timer for at least one second thread performing the provisioning operation; Performing a provisioning task stored in a task queue through the second thread; Storing a list of timer expired second threads; And changing the state information of the resource whose number of timer expired second threads is equal to or more than a predetermined number to the suspended state.
본 발명에 따르면, 리소스 자체 문제나 네트워크 오류 등 다양한 원인에 의해 프로비저닝이 무한 대기하는 것을 방지할 수 있다. 다시 말해, 수행 시간이 길어지거나 무한 대기하는 쓰레드가 많이 발생하는 리소스를 선별 관리하여, 문제가 있는 리소스에 대한 추가적인 프로비저닝 작업을 수행하지 아니하도록 하여 프로비저닝 작업 전체가 무한 대기하는 것을 방지할 수 있다. 또한, 프로비저닝을 수행하는 쓰레드를 강제로 중지하지 아니하므로 시스템에 비정상적인 상황을 유발하지 않는다.According to the present invention, it is possible to prevent the provisioning from infinite waiting due to various causes such as a resource problem or a network error. In other words, it is possible to prevent resources from being infinitely waiting for the entire provisioning task by selectively managing resources that have a long execution time or a large number of threads that wait indefinitely, and do not perform additional provisioning work on the resource in question. In addition, it does not forcibly stop the thread that performs the provisioning, and thus does not cause an abnormal situation in the system.
도 1은 복수의 어댑터를 이용한 병렬 프로비저닝 처리 방법의 일 예를 도시한 도면,
도 2는 본 발명에 따른 프로비저닝 장치의 일 실시 예의 구성을 도시한 도면,
도 3은 본 발명에 따른 프로비저닝 장치의 다른 실시 예의 구성을 도시한 도면, 그리고,
도 4는 본 발명에 따른 프로비저닝 방법의 일 실시 예의 흐름을 도시한 도면이다.1 is a diagram showing an example of a parallel provisioning processing method using a plurality of adapters,
2 is a diagram showing the configuration of an embodiment of a provisioning apparatus according to the present invention,
FIG. 3 is a view showing a configuration of another embodiment of the provisioning apparatus according to the present invention,
FIG. 4 is a flow chart of an embodiment of a provisioning method according to the present invention.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 프로비저닝 장치 및 그 방법에 대해 상세히 설명한다.Hereinafter, a provisioning apparatus and a method thereof according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 복수의 어댑터를 이용한 병렬 프로비저닝 처리 방법의 일 예를 도시한 도면이다.1 is a diagram showing an example of a parallel provisioning processing method using a plurality of adapters.
도 1을 참조하면, 프로비저닝 장치를 구성하는 복수의 어댑터(110)는 병렬로 큐(100)에 프로비저닝 작업을 요청하여 수신한 후 리소스(120)에 대해 프로비저닝을 수행한다. 각 어댑터(112,114,116)는 쓰레드(Thread)로 구현될 수 있다.Referring to FIG. 1, a plurality of
큐(100)는 프로비저닝 작업을 저장한다. 예를 들어, 사용자가 제1 그룹에서 제2 그룹으로 이동하는 경우에, 큐는 제1 그룹에 대한 '사용자 추가'의 프로비저닝 작업과 제2 그룹에 대한 '사용자 삭제'의 프로비저닝 작업을 저장한다. 이 외에도, 그룹 추가, 그룹 갱신, 그룹 삭제, 사용자 추가, 사용자 갱신, 사용자 삭제 등의 다양한 프로비저닝 작업이 큐에 저장될 수 있다. 프로비저닝 작업의 종류나 내용 등은 실시 예에 따라 다양하게 변형될 수 있다. 본 실시 예는, 프로비저닝 작업이 큐(100)에 종래 다양한 방법을 통해 저장되어 있다고 가정한다. The
각 어댑터(112,114,116)는 큐(100)로부터 수신한 프로비저닝 작업을 기초로 리소스에 대한 프로비저닝을 수행한다. 프로비저닝 작업을 어떤 리소스에게 수행할지는 미리 정의되어 있다고 가정한다. 예를 들어, 큐(100) 또는 계정관리 데이터베이스(미도시)에, 제1 프로비저닝 작업의 대상 리소스는 제1 리소스(122) 및 제2 리소스(124)이고, 제2 프로비저닝 작업의 대상 리소스는 제M 리소스(126)라고 미리 저장되어 있다. Each
본 실시 예에서, 복수의 어댑터(110)가 병렬로 프로비저닝을 수행하므로 전체 프로비저닝 시간을 단축할 수 있다. 그러나 각 어댑터(112,114,116)는 하나의 프로비저닝 작업을 완료한 후에 다음 프로비저닝 작업을 수행할 수 있다. 예를 들어, 제1 어댑터(112)는 큐(100)로부터 제1 프로비저닝 작업을 수신한 후, 제1 프로비저닝 작업에 따라 제1 리소스(122)에 프로비저닝을 수행한다. 그리고 제1 어댑터(112)는 제1 프로비저닝 작업이 완료된 이후에 큐(100)로부터 다음 프로비저닝 작업을 수신하여 프로비저닝을 수행한다. 따라서 제1 프로비저닝 작업이 완료되지 아니하였다면 제1 프로비저닝 작업이 완료될 때까지 대기 상태가 된다. In this embodiment, a plurality of
제1 어댑터(112)가 제1 리소스(122)에 대한 제1 프로비저닝 작업을 수행 완료하지 못한 상황에서, 제2 어댑터(114)가 제1 리소스(122)에 대한 제2 프로비저닝 작업을 수행하면, 제2 어댑터(114) 또한 제2 프로비저닝 작업이 수행 완료될 때까지 대기상태가 된다. 최악의 경우 모든 어댑터가 제1 리소스(122)에 대한 프로비저닝을 수행하면 전체 프로비저닝이 대기 상태가 되어 프로비저닝이 중지된 것처럼 보일 수 있다. 리소스나 네트워크 등 외부의 다른 여러 요인으로 인해 프로비저닝이 느려지거나 무한 대기 상태가 됨에도 불구하고, 프로비저닝 장치 자체의 오류나 장애로 잘못 인식될 수 있다. If the
어댑터(110)와 리소스(120) 사이의 네트워크, 웹 서비스 API(Application Programming Interface) 등 다양한 문제로 인해 프로비저닝이 오래 걸리거나 대기 상태가 될 수 있다. 그러나 문제가 있어 보이는 프로비저닝을 수행하는 어댑터(110)의 동작을 강제로 종료하는 경우, 프로비저닝 장치 또는 리소스(120)에 예기치 못한 문제점이 발생할 수 있다. Java 환경에서는 동작중인 쓰레드를 강제로 죽이지 말 것을 강력히 권장하고 있다. The provisioning may take a long time or become a standby state due to various problems such as a network between the
리소스(120)는 어댑터(110)로부터 전달받은 권한이나 계정 등의 정보를 반영하기 위하여 파일 시스템 I/O 또는 네트워크 소켓 I/O를 이용한다. 어댑터(110)가 비정상적인 프로비저닝을 중지하기 위하여 리소스(120)에 해당 프로비저닝의 중지 등을 요청하여야 한다. 그러나 어댑터(110)가 리소스(120)의 파일 시스템 I/O API에 오류를 통지해도 아무런 반응이 없다. 또한, 네트워크 소켓 I/O의 경우, JDBC(Java Database Connectivity), 웹 서비스 API가 리소스(120) 내부에서 사용중인 소켓에 접근할 수 있는 방법이 없어서 통지도 불가능하고 강제 종료도 불가능하다. 만약 JVM(Java Virtual Machine)을 강제 종료하면 애플리케이션 서비스가 중단되는 문제가 발생할 수 있다. 따라서 리소스(120)에 대한 프로비저닝 작업을 강제로 종료하지 않으면서도, 모든 어댑터(110)가 대기 상태가 되는 최악의 상태를 피할 수 있는 방법이 필요하다. The
도 2는 본 발명에 따른 프로비저닝 장치의 일 실시 예의 구성을 도시한 도면이다. 2 is a diagram showing a configuration of an embodiment of a provisioning apparatus according to the present invention.
도 2를 참조하면, 프로비저닝 장치는 적어도 하나 이상의 어댑터(200), 태스크 큐(210), 타이머 관리부(220), 작업관리부(230), 적어도 하나 이상의 작업수행부(240), 리소스 관리부(250)를 포함한다. 본 실시 예의, 각 구성은 쓰레드로 구현될 수 있으며, 쓰레드로 구현된 예에 대해서는 도 3에서 다시 설명한다. 2, the provisioning apparatus includes at least one
각 어댑터(202,204,206)는 도 1의 큐 등과 같은 외부 장치로부터 프로비저닝 작업을 수신하여 태스크 큐(210)에 저장한다. 프로비저닝 작업은 어떤 리소스에 어떤 정보를 반영하여야 하는지를 나타낸다. Each of the
태스크 큐(210)는 각 어댑터(202,204,206)로부터 수신한 프로비저닝 작업을 저장한다. 실시 예에 따라, 프로비저닝 작업 사이에 수행 순서가 존재할 수 있다. 예를 들어, 새로운 그룹에 사용자를 추가하는 프로비저닝이 필요한 경우에, 먼저 대상 리소스에 새로운 그룹을 생성한 후 사용자를 새롭게 생성한 그룹에 추가하여야 한다. 따라서 태스크 큐(210)는 수행 순서가 동일하거나 수행 순서가 존재하지 아니한 프로비저닝 작업이 병렬로 처리될 수 있도록 프로비저닝 작업을 수행 순서를 기초로 저장하고 관리할 수 있다. 프로비저닝 작업 사이의 수행 순서는 계정관리 데이터베이스(미도시) 등에 미리 설정되어 있다고 가정한다.
작업수행부(240)는 태스크 큐(210)로부터 프로비저닝 작업을 수신하여 리소스(260)에 대한 프로비저닝을 수행한다. 각 작업수행부(242,244,246)는 쓰레드로 구현될 수 있다. 각 작업수행부(242,244,246)는 병렬로 프로비저닝을 수행할 수 있다. 여러 원인으로 인해, 대상 리소스에 대한 프로비저닝 수행에 오랜 시간이 걸리거나 작업이 완료되지 않는 경우가 있을 수 있다. The
실시 예에 따라, 태스크 큐(210)에 저장된 프로비저닝 작업 그 자체에 리소스에 반영할 계정이나 권한 등의 실질적인 정보가 존재하거나 존재하지 않을 수 있다. 프로비저닝 작업 그 자체에 계정이나 권한 등의 실질적인 정보가 포함되어 있지 아니한 경우, 작업수행부(240)는 프로비저닝 작업에 기술된 리소스 식별자와 프로비저닝 작업 내용 식별자(예를 들어, 그룹이나 사용자 추가, 갱신, 삭제 등), 작업 내용에 따른 그룹이나 사용자의 식별자 등을 기초로 계정관리 데이터베이스(미도시)를 검색하여 계정이나 권한 등의 실질적인 정보를 획득한 후 프로비저닝을 수행할 수 있다. According to the embodiment, the provisioning job itself stored in the
타이머 관리부(220)는 작업수행부(240)에 대한 타이머를 구동한다. 작업수행부(240)가 복수 개인 경우에, 타이머 관리부(220)는 각 작업수행부별(242,244,246)로 타이머를 구동한다. 타이머를 통해 프로비저닝 수행 시간이 일정 시간 경과한 작업수행부를 파악할 수 있다. 작업수행부(242,244,246)로부터 프로비저닝 작업의 수행 완료를 수신하면, 타이머 관리부(220)는 해당 작업수행부(242,244,246)의 타이머를 해제하고 작업 수행 완료를 해당 어댑터(202,204,206)에게 통지한다. 작업 수행 완료를 통지받은 어댑터(202,204,206)는 다음 프로비저닝 작업을 수신하는 동작을 수행한다. 그리고 타이머 관리부(220)는 타이머 만료시까지 프로비저닝 작업이 완료되지 못한 작업수행부(242,244,246)를 작업관리부(230)에 통지하여 별도 관리될 수 있도록 한다. The
작업관리부(230)는 타이머 만료된 작업수행부를 강제로 종료하는 것이 아니라 이를 파악하여 별도로 관리한다. 예를 들어, 작업관리부(230)는 현재 프로비저닝을 수행중인 작업수행부들 중 타이머가 만료 전인 작업수행부에 대한 리스트와 타이머가 만료된 작업수행부에 대한 리스트를 구분하여 생성하고 관리할 수 있다. 작업관리부(230)는 프로비저닝 작업의 수행을 완료한 작업수행부를 리스트에서 삭제한다. 예를 들어, 타이머 만료 전까지 제1 작업관리부(242)는 타이머 만료 전 리스트에 존재하며, 타이머 만료 후에는 타이머 만료 전 리스트에서 삭제되고 타이머 만료 후 리스트에 추가되며, 프로비저닝 작업이 완료되면 타이머 만료 후 리스트에서 삭제된다. The
리소스 관리부(250)는 리소스별로 타이머 만료된 작업수행부의 수를 파악한다. 리소스 관리부(250)는 타이머 만료된 작업수행부의 수가 일정 개수 이상인 리소스의 상태 정보를 동작 상태에서 중지 상태로 변경한다. 예를 들어, 상태 변경을 위한 기준값이 2라고 할 때, 제1 리소스(262)에 대한 프로비저닝을 수행하는 제1 작업수행부(242) 및 제2 작업수행부(244)의 타이머가 모두 만료되었다면, 리소스 관리부(250)는 제1 리소스(262)의 상태 정보를 중지 상태로 변경한다. 이후 제1 리소스(262)의 상태가 정상 동작 상태가 아니므로, 어댑터(200)는 제1 리소스(262)에 대한 프로비저닝 작업을 수신하면, 제1 리소스에 대한 프로비저닝 작업이 더 이상 수행되지 않도록 한다. 또한 리소스 관리부(250)는 오류를 발생하여 제1 리소스에 대한 프로비저닝 작업이 정상적으로 수행될 수 없음을 관리자 등에게 통지할 수 있다. 따라서, 제1 작업수행부(242) 및 제2 작업수행부(244) 외에 다른 작업수행부가 또 다시 제1 리소스(262)에 대한 프로비저닝 작업을 수행하여 대기 상태가 되는 것을 방지하며, 제1 리소스(262) 외의 다른 리소스9264,266)에 대한 프로비저닝 작업이 정상적으로 수행되도록 할 수 있다. The
도 3은 본 발명에 따른 프로비저닝 장치의 다른 실시 예의 구성을 도시한 도면이다. 특히 도 3은 각 구성이 쓰레드로 구현되는 경우를 도시한 도면이다. 3 is a diagram showing the configuration of another embodiment of the provisioning apparatus according to the present invention. 3 is a diagram showing a case where each configuration is implemented as a thread.
도 3을 참조하면, 프로비저닝 장치는 적어도 하나 이상의 어댑터(200), 태스크 큐(210), 러너팩토리(runner factory)(222), 타임아웃러너(timeour runner)(224), 종료관리부(238), 모니터링부(232), 제1리스트(234) 및 제2리스트(236), 적어도 하나 이상의 작업수행부(240), 리소스 관리부(250), 리소스정보 데이터베이스(252)를 포함한다. 3, the provisioning apparatus includes at least one
어댑터(즉, 어댑터 쓰레드)(200)는 도 1의 큐 등에 프로비저닝 작업을 요청하여 수신한다. 어댑터(200)는 프로비저닝 작업의 대상 리소스의 상태 정보가 동작 상태인지 중지 상태인지를 리소스정보 데이터베이스(252)를 통해 확인한다. 어댑터(200)는 리소스 상태가 동작 상태인 경우에만 프로비저닝 작업이 수행될 수 있도록 하며, 리소스 상태가 중지 상태이면, 해당 프로비저닝 작업이 수행되지 않도록 오류를 발생할 수 있다. 어댑터(200)는 정상 동작 상태인 리소스(260)에 대한 프로비저닝 작업이면, 러너팩토리(222)에게 타이아웃러너(224)를 요청한다.The adapter (i.e., adapter thread) 200 requests and receives a provisioning job from the queue of FIG. The
러너팩토리(222)는 어댑터(200)의 요청에 따라 어댑터(200)를 위한 타임아웃러너(224)를 생성한다. 타임아웃러너(224)는 어댑터별로 생성되는 쓰레드로 구현될 수 있으며, 어댑터(200)에 대해 이전에 생성된 타임아웃러너(224)가 존재하면 이를 그대로 활용할 수 있다. The
어댑터(200)에 대한 타임아웃러너(224)는 어댑터(200)로부터 프로비전 작업을 전달받아 태스크 큐(210)에 저장하며, 프로비전 작업을 수행할 작업수행부(즉, 작업수행부 쓰레드)(240)를 모니터링부(232)로부터 할당받아 작업수행부(240)에 대한 타이머를 구동한다. 어댑터(200)-타임아웃러너(224)-작업수행부(240)의 각 쓰레드는 일대일 맵핑관계를 가질 수 있다. 즉, 어댑터(200)별로 타임아웃러너(224)가 존재하고, 타임아웃러너(224)는 어댑터(200)로부터 전달받은 프로비전 작업을 수행할 작업수행부(240)에 대한 타이머를 구동한다. The
타이머에는 일정 시간이 설정되어 있으며, 타임아웃러너(224)는 타이머 구동시간 동안(즉, 타이머 만료 전까지) 작업수행부(240)가 프로비저닝 작업의 수행을 완료하지 못하면, 작업수행부(240)의 타이머 만료 사실을 모니터링부(232)에게 전달한다. The
앞서 살핀 바와 같이, 모니터링부(232)는 타임아웃러너(224)를 위한 작업수행부(240)를 할당한다. 모니터링부(232)는 타임아웃러너(224)에 대한 작업수행부(240)가 이미 존재하는 경우에 이를 그대로 활용하며, 존재하지 아니한 경우 작업수행부(240)를 생성하여 타임아웃러너(224)에게 할당한다. 모니터링부(232)는 타임아웃러너(224)에게 할당한 작업수행부(240)의 리스트를 제1 리스트(234)에 저장한다. 제1 리스트(234)는 타이머가 만료되기 전 작업수행부(240)의 정보를 저장하는 리스트이다. 모니터링부(232)는 작업수행부(240)에게 프로비저닝 작업을 요청한다. As described above, the
모니터링부(232)는 타임아웃러너(224)로부터 타이머 만료된 작업수행부(240)를 통보받으면, 모니터링부(232)는 타이머 만료된 작업수행부(240)를 제2 리스트(236)에 저장한다. 제2 리스트(236)는 타이머가 만료된 작업수행부의 리스트이다.When the
모니터링부(232)로부터 프로비저닝 작업 요청을 수신한 작업수행부(240)는 태스크 큐(210)로부터 프로비저닝 작업을 수신하여 수행한다. 프로비저닝 작업이 완료되면, 작업수행부(240)는 타임아웃러너(224)에게 수행 완료를 통지한다. 그러면 타임아웃러너(224)는 타이머를 해제하고 프로비저닝 작업이 완료되었음을 어댑터(200)에게 알려준다. 어댑터(200)는 다음 프로비저닝 작업을 수신한다.The
작업수행부(240)의 프로비저닝 작업이 오랜 시간 지연되어, 프로비저닝 작업이 타이머가 만료되기 전까지 종료되지 아니한 경우에, 앞서 살핀 바와 같이 타임아웃러너(224)는 모니터링부(232)에게 타이머 만료된 작업수행부를 통지한다. 그러면 모니터링부(232)는 타이머 만료된 작업수행부(240)를 제2 리스트(236)에 추가한다. 작업수행부(240)의 프로비저닝 작업은 강제 종료되는 것이 아니라 모니터링부(232)에 의해 별도 관리된다.If the provisioning task of the
리소스 관리부(250)는 제2 리스트(236)에 저장된 타이머 만료된 작업수행부의 개수를 리소스별로 파악하여, 타이머 만료된 작업수행부의 수가 일정 개수 이상인 리소스의 상태 정보를 중지 상태로 변경하여 리소스 정보 데이터베이스(252)에 저장한다. The
제2 리스트(236)에 존재하는 작업수행부(240)가 프로비저닝 작업의 수행을 완료하면, 작업수행부(240)는 작업 종료를 모니터링부(232)에 통보한다. 이 경우 모니터링부(232)는 제2 리스트(236)에서 작업 종료된 작업수행부(240)를 삭제한다. 제2 리스트(236)에 저장된 작업수행부의 프로비저닝 작업이 종료 상태가 되는 경우는 다양할 수 있다. 예를 들어, 종료관리부(238)는 리소스가 연결을 종료한 경우, 리소스와 네트워크 연결이 종료되거나 방화벽 설정이 정상으로 복귀되어 작업이 진행된 경우, 프로비전을 하기 위해 사용하는 API가 내부적인 오류 또는 타임아웃에 의하여 예외처리가 발생한 경우 등을 파악하여 모니터링부(238)에게 프로비저징 작업이 종료되었음을 알려준다. 그러면 모니터링부(232)는 작업 종료된 작업수행부(240)를 제2 리스트(236)에서 삭제한다.When the
도 4는 본 발명에 따른 프로비저닝 방법의 일 실시 예의 흐름을 도시한 도면이다.FIG. 4 is a flow chart of an embodiment of a provisioning method according to the present invention.
도 4를 참조하면, 프로비저닝 장치는 제1 쓰레드를 통해 프로비저닝 작업을 수신한다(S400). 프로비저닝 장치는 프로비저닝 작업의 대상 리소스의 상태가 동작 상태이면(S405) 다음 단계를 수행하며, 리소스의 상태가 중지 상태이면 해당 프로비저닝 작업이 수행되지 않도록 오류를 발생한다(S450). Referring to FIG. 4, the provisioning apparatus receives a provisioning job through a first thread (S400). If the state of the resource of the provisioning job is an operation state (S405), the provisioning device performs the following steps. If the state of the resource is a stop state, an error occurs so that the provisioning operation is not performed (S450).
프로비저닝 장치는 각 프로비저닝 작업을 수행하는 제2 쓰레드에 대한 타이머를 구동하고(S410), 프로비저닝 작업을 태스크 큐에 저장한다(S415). 제1 쓰레드와 제2 쓰레드는 별개의 쓰레드이다. 프로비저닝 장치는 복수의 제2 쓰레드를 이용하여 병렬로 프로비저닝을 수행하며, 이때 프로비저닝을 수행 중인 복수 개의 제2 쓰레드를 타이머 만료 전후 구분하여 관리한다(S420~S435). The provisioning apparatus drives a timer for a second thread performing each provisioning task (S410), and stores the provisioning task in a task queue (S415). The first thread and the second thread are separate threads. The provisioning apparatus performs provisioning in parallel using a plurality of second threads, and manages a plurality of second threads, which are being provisioned, before and after expiration of the timer (S420 to S435).
예를 들어, 프로비저닝 장치는 타이머 만료 전 리스트에 제2 쓰레드를 저장하고(S420), 제2 쓰레드를 통해 태스크 큐에 저장된 프로비저닝 작업을 수행한다(S425). 프로비저닝 작업이 타이머 만료 전까지 수행 완료되지 아니한 경우(S430), 프로비저닝 장치는 타이머 만료된 제2 쓰레드를 타이머 만료 후 리스트에 저장한다(S435). For example, the provisioning device stores the second thread in the list before expiration of the timer (S420), and performs the provisioning task stored in the task queue through the second thread (S425). If the provisioning operation is not completed before the expiration of the timer (S430), the provisioning device stores the expired second thread in the list after expiration of the timer (S435).
프로비저닝 장치는 타이머 만료된 제2 쓰레드의 개수가 일정 개수 이상이면(S440). 해당 리소스의 상태 정보를 중지 상태로 변환한다(S445). 중지 상태로 변경된 리소스에 대한 프로비저닝 작업은 수행되지 않는다. 실시 예에 따라, 프로비저닝 장치는 중지 상태로 변경된 리소스에 대한 정보를 관리자 등에게 알람 등을 통해 알려주어, 관리자가 리소스의 상태를 직접 파악할 수 있도록 한다. 관리자는 리소스의 상태를 파악하여 리소스를 강제 접속 종료시키거나 JVM 재가동 등의 다양한 조치를 취할 수 있다. 또한 관리자는 리소스의 상태 정보를 동작 상태로 변경하여 이후 프로비저닝이 수행될 수 있게 할 수 있다. If the number of the second threads expired by the timer is more than a predetermined number (S440), The state information of the resource is converted into the stop state (S445). Provisioning is not performed for resources that have been changed to a suspended state. According to the embodiment, the provisioning apparatus notifies the manager of the information about the resource changed to the stop state through an alarm or the like so that the manager can directly grasp the state of the resource. The administrator can grasp the status of the resource, terminate the resource forcibly, or take various actions such as restarting the JVM. In addition, the administrator can change the state information of the resource to the operating state so that the provisioning can be performed later.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. 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. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
Claims (9)
상기 태스크 큐에 저장된 프로비저닝 작업에 따라 리소스에 프로비저닝을 수행하는 적어도 하나 이상의 작업수행부;
상기 적어도 하나 이상의 작업수행부에 대한 타이머를 구동하는 타이머관리부;
타이머 만료된 작업수행부에 대한 리스트를 저장하고 관리하는 작업관리부; 및
타이머 만료된 작업수행부의 수가 일정 개수 이상인 리소스의 상태 정보를 중지 상태로 변경하는 리소스관리부;를 포함하는 것을 특징으로 하는 프로비저닝 장치.At least one or more adapters for receiving a provisioning task for a normally operating resource and storing the provisioning task in a task queue;
At least one task performing unit for provisioning resources according to a provisioning task stored in the task queue;
A timer managing unit for driving a timer for the at least one job performing unit;
A task management unit for storing and managing a list of timer expired task performing units; And
And a resource management unit for changing state information of a resource having a number of timer expired job execution units equal to or greater than a predetermined number to a suspended state.
상기 적어도 하나 이상의 어댑터는 쓰레드로 구성되어 병렬로 수행되고,
상기 적어도 하나 이상의 작업수행부는 쓰레드로 구성되어 병렬로 수행되는 것을 특징으로 하는 프로비저닝 장치.The method according to claim 1,
Wherein the at least one adapter is implemented in threads and executed in parallel,
Wherein the at least one task performing unit is composed of threads and executed in parallel.
타이머 만료 전 작업수행부에 대한 제1 리스트와 타이머 만료된 작업수행부에 대한 제2 리스트를 저장 관리하는 것을 특징으로 하는 프로비저닝 장치.The information processing apparatus according to claim 1,
And a second list for a timer expired task performing unit and a second list for a timer expired task performing unit are stored and managed.
상기 어댑터는 프로비저닝 작업의 대상 리소스의 상태 정보가 중지 상태이면, 오류 정보를 발생하는 것을 특징으로 하는 프로비저닝 장치.The method according to claim 1,
Wherein the adapter generates the error information when the status information of the target resource of the provisioning job is in a stopped state.
상기 작업수행부는 프로비저닝 작업의 수행이 완료되면 타이머관리부에 수행 완료 정보를 전달하고,
상기 타이머관리부는 프로비저닝 작업을 수행 완료한 작업수행부의 타이머를 해제하고, 수행 완료 정보를 어댑터에 전달하는 것을 특징으로 하는 프로비저닝 장치.The method according to claim 1,
Wherein the task execution unit delivers execution completion information to the timer management unit when the provisioning task is completed,
Wherein the timer management unit releases the timer of the task execution unit that has completed the provisioning task and delivers the execution completion information to the adapter.
상기 프로비저닝 장치는,
적어도 하나 이상의 제1 쓰레드를 이용하여 정상 동작 중인 대상 리소스에 대한 프로비저닝 작업을 수신하여 태스크 큐에 저장하는 단계;
프로비저닝 작업을 수행하는 적어도 하나 이상의 제2 쓰레드에 대한 타이머를 구동하는 단계;
상기 제2 쓰레드를 통해 태스크 큐에 저장된 프로비저닝 작업을 수행하는 단계;
타이머 만료된 제2 쓰레드에 대한 리스트를 저장하는 단계; 및
타이머 만료된 제2 쓰레드의 수가 일정 개수 이상인 리소스의 상태 정보를 중지 상태로 변경하는 단계;를 포함하는 것을 특징으로 하는 프로비저닝 방법.A method for provisioning by a provisioning device comprising a timer,
The provisioning device comprising:
Receiving a provisioning task for a target resource in normal operation using at least one first thread and storing the provisioning task in a task queue;
Driving a timer for at least one second thread performing the provisioning operation;
Performing a provisioning task stored in a task queue through the second thread;
Storing a list of timer expired second threads; And
And changing the status information of the resources whose number of timer expired second threads is equal to or greater than a predetermined number to the suspended state.
프로비저닝 작업의 대상 리소스의 상태가 동작 상태인 경우에 프로비저닝 작업을 상기 태스크 큐에 저장하는 단계;를 포함하는 것을 특징으로 하는 프로비저닝 방법.7. The method of claim 6,
And storing the provisioning job in the task queue when the state of the target resource of the provisioning job is in an operating state.
제2 쓰레드의 프로비저닝 작업의 수행이 완료되면 제2 쓰레드의 타이머를 해제하고, 수행 완료 정보를 제1 쓰레드에 전달하는 단계;를 상기 프로비저닝 작업을 수행하는 단계 이후에 포함하는 것을 특징으로 하는 프로비저닝 방법.The method according to claim 6,
Releasing the timer of the second thread when the provisioning of the second thread is completed and delivering the execution completion information to the first thread after the step of performing the provisioning operation .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160087279A KR101692964B1 (en) | 2016-07-11 | 2016-07-11 | Provisioning apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160087279A KR101692964B1 (en) | 2016-07-11 | 2016-07-11 | Provisioning apparatus and method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101692964B1 true KR101692964B1 (en) | 2017-01-05 |
Family
ID=57835603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160087279A KR101692964B1 (en) | 2016-07-11 | 2016-07-11 | Provisioning apparatus and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101692964B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110686A (en) * | 2021-04-28 | 2021-07-13 | 常熟开关制造有限公司(原常熟开关厂) | Automatic transfer switch conversion frequency limiting method and device and automatic transfer switch |
US11979279B1 (en) * | 2023-08-09 | 2024-05-07 | Arista Networks, Inc. | Allocated execution time adjustment for secure device provisioning |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302986A (en) * | 2003-03-31 | 2004-10-28 | Alps Electric Co Ltd | Method for managing task |
KR20070068773A (en) | 2005-12-27 | 2007-07-02 | 엘지.필립스 엘시디 주식회사 | Liquid crystal display |
KR100832093B1 (en) * | 2007-07-09 | 2008-05-27 | 주식회사 넷츠 | Provisioning apparatus for resources and authorities for integrated identity management |
KR20110052714A (en) * | 2008-08-25 | 2011-05-18 | 인터내셔널 비지네스 머신즈 코포레이션 | Provisioning virtual resources using name resolution |
KR20130137503A (en) * | 2012-06-07 | 2013-12-17 | 주식회사 엘지씨엔에스 | Apparatus for dynamic data processing using resource monitoring and method thereof |
-
2016
- 2016-07-11 KR KR1020160087279A patent/KR101692964B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302986A (en) * | 2003-03-31 | 2004-10-28 | Alps Electric Co Ltd | Method for managing task |
KR20070068773A (en) | 2005-12-27 | 2007-07-02 | 엘지.필립스 엘시디 주식회사 | Liquid crystal display |
KR100832093B1 (en) * | 2007-07-09 | 2008-05-27 | 주식회사 넷츠 | Provisioning apparatus for resources and authorities for integrated identity management |
KR20110052714A (en) * | 2008-08-25 | 2011-05-18 | 인터내셔널 비지네스 머신즈 코포레이션 | Provisioning virtual resources using name resolution |
KR20130137503A (en) * | 2012-06-07 | 2013-12-17 | 주식회사 엘지씨엔에스 | Apparatus for dynamic data processing using resource monitoring and method thereof |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110686A (en) * | 2021-04-28 | 2021-07-13 | 常熟开关制造有限公司(原常熟开关厂) | Automatic transfer switch conversion frequency limiting method and device and automatic transfer switch |
CN113110686B (en) * | 2021-04-28 | 2022-03-29 | 常熟开关制造有限公司(原常熟开关厂) | Automatic transfer switch conversion frequency limiting method and device and automatic transfer switch |
US11979279B1 (en) * | 2023-08-09 | 2024-05-07 | Arista Networks, Inc. | Allocated execution time adjustment for secure device provisioning |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4637842B2 (en) | Fast application notification in clustered computing systems | |
JP4650203B2 (en) | Information system and management computer | |
US7418489B2 (en) | Method and apparatus for applying policies | |
US7698602B2 (en) | Systems, methods and computer products for trace capability per work unit | |
US7730183B2 (en) | System and method for generating virtual networks | |
US9092377B2 (en) | Managing back up operations for data | |
US5687372A (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
US7856496B2 (en) | Information gathering tool for systems administration | |
US9311170B2 (en) | System, method and program tool to reset an application | |
US10860385B2 (en) | Method and system for allocating and migrating workloads across an information technology environment based on persistent memory availability | |
JP2012099092A (en) | Management method, system, and computer program for incident pool | |
JP4056491B2 (en) | Selective generation of asynchronous notifications for partition management operations on logically partitioned computers | |
US11196627B1 (en) | Managed remediation of non-compliant resources | |
KR101692964B1 (en) | Provisioning apparatus and method | |
EP0747814A1 (en) | Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment | |
US7979870B1 (en) | Method and system for locating objects in a distributed computing environment | |
JP2017142704A (en) | Connection management program, connection management device, and information processing device | |
US7886196B2 (en) | Fast detection of process outages | |
US9032014B2 (en) | Diagnostics agents for managed computing solutions hosted in adaptive environments | |
EP0747812A2 (en) | Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment | |
US10585620B2 (en) | Storage monitoring system for monitoring components in a storage system in a distributed manner | |
JP5884566B2 (en) | Batch processing system, progress confirmation device, progress confirmation method, and program | |
KR101676467B1 (en) | Privisioning method and apparatus | |
US7240348B2 (en) | Suspending scenario generation method, server device, and program therefor | |
JP4804139B2 (en) | Information output method, system and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20191224 Year of fee payment: 4 |