KR102466717B1 - 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법 - Google Patents

문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102466717B1
KR102466717B1 KR1020200092111A KR20200092111A KR102466717B1 KR 102466717 B1 KR102466717 B1 KR 102466717B1 KR 1020200092111 A KR1020200092111 A KR 1020200092111A KR 20200092111 A KR20200092111 A KR 20200092111A KR 102466717 B1 KR102466717 B1 KR 102466717B1
Authority
KR
South Korea
Prior art keywords
document
conversion
format conversion
format
groups
Prior art date
Application number
KR1020200092111A
Other languages
English (en)
Other versions
KR20220013082A (ko
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 KR1020200092111A priority Critical patent/KR102466717B1/ko
Publication of KR20220013082A publication Critical patent/KR20220013082A/ko
Application granted granted Critical
Publication of KR102466717B1 publication Critical patent/KR102466717B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법이 개시된다. 본 발명은 다수의 문서 변환 서버들을 활용해서 다수의 전자 문서들의 포맷 변환을 수행하는 시스템에 있어서, 문서 파일의 크기나 문서에 삽입된 개체 수를 고려하여 문서 파일들을 포맷 변환에 소요되는 시간에 따라 군집화한 후 각 군집별로 각 문서 변환 서버에 포맷 변환 작업을 할당함으로써, 보다 효율적인 문서 변환 작업이 수행될 수 있도록 지원하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법에 대한 것이다.

Description

문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법{DOCUMENT CONVERSION JOB ALLOCATION SCHEDULING APPARATUS THAT PERFORMS JOB ALLOCATION FOR DOCUMENT FORMAT CONVERSION FOR DOCUMENT CONVERSION SERVERS EQUIPPED WITH A FORMAT CONVERSION ENGINE THAT CONVERTS DOCUMENT FORMATS AND OPERATING METHOD THEREOF}
본 발명은 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법에 대한 것이다.
최근, 다양한 종류의 문서 열림 및 편집 프로그램들이 등장함에 따라, 이러한 프로그램들에서 호환되는 다양한 종류의 전자 문서 포맷들이 등장하고 있다. 예컨대, 'docx', 'hwp', 'pdf' 등과 같은 확장자를 갖는 다양한 문서 포맷이 존재한다.
아울러, 최근에는 기업 등과 같은 각종 기관에서 업무의 효율성을 높이기 위해, 브라우저 상에서 다양한 전자 문서를 열람하고, 작성할 수 있도록 하는 웹 기반의 업무 시스템을 도입하는 경우가 증가하고 있다.
이러한 웹 기반의 업무 시스템은 브라우저 상에 문서 작성이 가능하도록 하는 웹 에디터가 탑재되어 있어서, 사용자가 브라우저를 통해 웹 에디터를 구동한 후 상기 웹 에디터를 통해 다양한 문서를 열람 및 작성할 수 있도록 지원하며, 이렇게 문서 작성이 완료되면, 작성이 완료된 문서를 다른 사용자에게 공유할 수 있도록 지원하고 있다.
웹 기반의 업무 시스템에서는 전자 문서가 브라우저 상에서 표시되어야 하기 때문에 HTML(Hypertext Markup Language)과 같이 마크업 언어 포맷으로 구성된 웹 문서가 주로 사용된다.
이렇게, 다양한 포맷의 전자 문서가 사용됨에 따라, 특정 포맷으로 생성된 전자 문서를 다른 포맷으로 변환할 수 있는 포맷 변환 기능의 중요성이 증가하고 있다. 예컨대, 'docx'의 확장자 포맷으로 작성된 전자 문서를 'hwp'의 확장자 포맷의 전자 문서로 변환하거나, 'hwp'의 확장자 포맷으로 작성된 전자 문서를 HTML 기반의 웹 문서로 변환하는 포맷 변환 기능의 중요성이 증가하고 있다.
이렇게, 전자 문서의 포맷 변환 기능에 대한 중요성이 증가함에 따라, 다양한 형식의 전자 문서 포맷 변환 서비스의 제공을 고려할 수 있다. 관련해서, 전자 문서의 포맷을 변환해 주는 서비스 서버를 구축함으로써, 클라이언트 단말로부터 특정 전자 문서의 포맷을 변환해 달라고 하는 요청이 수신되는 경우, 상기 서비스 서버를 통해 해당 전자 문서의 포맷을 변환한 후 그 결과 파일을 클라이언트 단말로 제공해 주는 서비스의 도입을 고려할 수 있다.
특히, 전자 문서의 포맷 변환을 위한 수요가 증가함에 따라, 다수의 전자 문서들을 동시에 다른 포맷으로 변환할 수 있도록 하는 기술의 중요성이 증가하고 있다. 이렇게, 다수의 전자 문서들을 동시에 다른 포맷으로 변환하기 위해서는 소정의 문서의 포맷을 변환할 수 있는 포맷 변환 엔진이 탑재된 다수의 문서 변환 서버들을 활용하는 방안을 고려할 수 있다.
일반적으로, 다수의 문서 변환 서버들을 활용해서 다수의 전자 문서들에 대한 포맷 변환을 진행하는 경우에는 각 문서 변환 서버에 대해 전자 문서의 포맷 변환 작업을 하나씩 라운드 로빈 방식으로 할당하는 스케줄링 방식이 주로 사용될 수 있다. 이러한 작업 할당 스케줄링 방식은 각 문서 변환 서버에서의 작업량을 거의 동일하게 맞출 수 있다는 점에서 효율적인 스케줄링 방식이라고 볼 수 있다.
하지만, 전술한 바와 같은 스케줄링 방식은 각 전자 문서의 포맷 변환에 소요되는 시간을 고려해서 작업을 할당하는 방식이 아니기 때문에, 비교적 적은 시간안에 포맷 변환이 완료될 수 있는 전자 문서의 포맷 변환도 상대적으로 시간이 오래 걸리는 문제가 발생할 수 있다.
전자 문서의 포맷 변환에 소요되는 시간은 문서 파일의 크기가 클수록, 문서에 삽입되어 있는 개체 수가 많을수록 많이 소요되는 특징이 있다.
만약, 다수의 문서 변환 서버들을 활용해서 다수의 전자 문서들의 포맷을 변환하는 작업을 수행한다고 하였을 때, 각 문서 변환 서버에 각 전자 문서를 순서대로 하나씩 할당하는 것이 아니라, 문서 파일의 크기가 크거나 개체 수가 많아서 포맷 변환에 많은 시간이 소요되는 전자 문서들과 문서 파일의 크기가 작거나 개체 수가 적어서 포맷 변환에 적은 시간이 소요되는 전자 문서들을 서로 분리한 후 포맷 변환에 많은 시간이 소요되는 전자 문서들은 특정 문서 변환 서버에서 포맷 변환 작업이 수행되도록 하고, 포맷 변환에 적은 시간이 소요되는 전자 문서들은 다른 문서 변환 서버에서 포맷 변환 작업이 수행되도록 한다면, 포맷 변환에 적은 시간이 소요되는 전자 문서들에 대해서는 빠른 포맷 변환 작업이 완료될 수 있어, 보다 효율적인 포맷 변환 작업이 가능해질 수 있을 것이다.
따라서, 다수의 문서 변환 서버들을 활용해서 다수의 전자 문서들의 포맷 변환을 수행하는 시스템에 있어서, 문서 파일의 크기나 문서에 삽입된 개체 수를 고려하여 문서 파일을 포맷 변환에 소요되는 시간에 따라 군집화한 후 각 군집별로 각 문서 변환 서버에 포맷 변환 작업을 할당함으로써, 보다 효율적인 문서 변환 작업이 수행될 수 있도록 지원하는 스케줄링 기법에 대한 연구가 필요하다.
본 발명은 다수의 문서 변환 서버들을 활용해서 다수의 전자 문서들의 포맷 변환을 수행하는 시스템에 있어서, 문서 파일의 크기나 문서에 삽입된 개체 수를 고려하여 문서 파일들을 포맷 변환에 소요되는 시간에 따라 군집화한 후 각 군집별로 각 문서 변환 서버에 포맷 변환 작업을 할당함으로써, 보다 효율적인 문서 변환 작업이 수행될 수 있도록 지원하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법을 제시하고자 한다.
본 발명의 일실시예에 따른 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 K(K는 2이상의 자연수)개의 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치는 복수의 문서 파일들에 대한 포맷 변환 명령이 인가되면, 상기 복수의 문서 파일들 각각의 크기를 확인하고, 상기 복수의 문서 파일들 각각에 삽입되어 있는 개체의 개수를 카운트하는 문서 파일 확인부, 상기 복수의 문서 파일들 각각에 대해, 각 문서 파일의 크기와 각 문서 파일에 삽입되어 있는 개체의 개수를 성분으로 갖는 2차원 벡터를 구성함으로써, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성하는 특징 벡터 생성부, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 기초로 K-평균 군집화(K-means Clustering)를 수행하여 상기 복수의 문서 파일들을 K개의 그룹들로 군집화하는 군집화부 및 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송하는 작업 할당부를 포함한다.
또한, 본 발명의 일실시예에 따른 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 K(K는 2이상의 자연수)개의 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치의 동작 방법은 복수의 문서 파일들에 대한 포맷 변환 명령이 인가되면, 상기 복수의 문서 파일들 각각의 크기를 확인하고, 상기 복수의 문서 파일들 각각에 삽입되어 있는 개체의 개수를 카운트하는 단계, 상기 복수의 문서 파일들 각각에 대해, 각 문서 파일의 크기와 각 문서 파일에 삽입되어 있는 개체의 개수를 성분으로 갖는 2차원 벡터를 구성함으로써, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성하는 단계, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 기초로 K-평균 군집화를 수행하여 상기 복수의 문서 파일들을 K개의 그룹들로 군집화하는 단계 및 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송하는 단계를 포함한다.
본 발명에 따른 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법은 다수의 문서 변환 서버들을 활용해서 다수의 전자 문서들의 포맷 변환을 수행하는 시스템에 있어서, 문서 파일의 크기나 문서에 삽입된 개체 수를 고려하여 문서 파일들을 포맷 변환에 소요되는 시간에 따라 군집화한 후 각 군집별로 각 문서 변환 서버에 포맷 변환 작업을 할당함으로써, 보다 효율적인 문서 변환 작업이 수행될 수 있도록 지원할 수 있다.
도 1은 본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 구조를 도시한 도면이다.
본 발명에 따른 문서 변환 작업 할당 스케줄링 장치(110)는 문서의 포맷을 변환할 수 있는 포맷 변환 엔진이 탑재되어 있는 K(K는 2이상의 자연수)개의 문서 변환 서버들(101, 102, 103)에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 장치로, 문서 파일 확인부(111), 특징 벡터 생성부(112), 군집화부(113) 및 작업 할당부(114)를 포함한다.
여기서, K개의 문서 변환 서버들(101, 102, 103)은 문서의 포맷을 다양한 포맷으로 상호 변환할 수 있도록 지원하는 포맷 변환 엔진을 탑재하고 있을 수 있다. 예컨대, 'docx' 확장자의 문서 파일을 'hwp' 확장자의 문서 파일로 변환하거나, 'hwp' 확장자의 문서 파일을 'docx' 확장자의 문서 파일로 변환하거나, 'hwp' 확장자의 문서 파일을 HTML 기반의 웹 문서로 변환하는 등과 같이, K개의 문서 변환 서버들(101, 102, 103)은 서로 다양한 종류의 포맷들 간에 상호 변환이 가능하도록 하는 포맷 변환 엔진을 탑재하고 있을 수 있다.
또한, 본 발명의 일실시예에 따르면, 문서 변환 작업 할당 스케줄링 장치(110)는 네트워크로 연결된 복수의 클라이언트 단말들로부터 복수의 문서 파일들과 상기 복수의 문서 파일들에 대한 문서 포맷 변환 요청이 수신되면, K개의 문서 변환 서버들(101, 102, 103)에 대해, 상기 복수의 문서 파일들에 대한 포맷 변환 작업을 할당한 후 K개의 문서 변환 서버들(101, 102, 103)에서 상기 복수의 문서 파일들의 포맷 변환이 완료되면, 그 완료 결과를 복수의 클라이언트 단말들로 전송하는 형태의 문서 포맷 변환 서비스를 제공하는 데에 활용될 수 있다.
문서 파일 확인부(111)는 복수의 문서 파일들에 대한 포맷 변환 명령이 인가되면, 상기 복수의 문서 파일들 각각의 크기를 확인하고, 상기 복수의 문서 파일들 각각에 삽입되어 있는 개체의 개수를 카운트한다.
예컨대, 상기 복수의 문서 파일들 중 어느 특정 문서 파일의 크기가 '100KB'이고, 해당 문서 파일에 따른 문서 내에 삽입되어 있는 개체의 개수가 '20개'라고 하는 경우, 문서 파일 확인부(111)는 상기 문서 파일의 크기를 '100KB', 상기 문서 파일에 삽입되어 있는 개체의 개수를 '20개'로 카운트할 수 있다.
여기서, 개체란 특정 문서 파일에 따른 전자 문서 내에 삽입되어 있는 도형, 표, 이미지 등과 같은 아이템을 의미한다.
또한, 상기 복수의 문서 파일들에 대한 포맷 변환 명령이란 상기 복수의 문서 파일들을 각 문서 파일에 대해서 지정된 타겟 포맷으로 변환하라는 명령을 포괄하는 개념을 의미한다. 예컨대, '문서 파일 1'에 대해서는 원래 포맷이 'docx' 확장자의 포맷인데, 'hwp' 확장자의 포맷으로 변환되어야 하고, '문서 파일 2'에 대해서는 원래 포맷이 'hwp' 확장자의 포맷인데, 'pdf' 확장자의 포맷으로 변환되어야 하는 경우라면, 상기 포맷 변환 명령 내에는 '문서 파일 1'을 'docx' 확장자의 포맷에서 'hwp' 확장자의 포맷으로 변환하라는 명령과, '문서 파일 2'를 'hwp' 확장자의 포맷에서 'pdf' 확장자의 포맷으로 변환하라는 명령이 포함되어 있다.
특징 벡터 생성부(112)는 상기 복수의 문서 파일들 각각에 대해, 각 문서 파일의 크기와 각 문서 파일에 삽입되어 있는 개체의 개수를 성분으로 갖는 2차원 벡터를 구성함으로써, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성한다.
관련해서, 앞선 예와 같이 특정 문서 파일의 크기가 '100KB'이고, 해당 문서 파일에 삽입되어 있는 개체의 개수가 '20개'라고 하는 경우, 특징 벡터 생성부(112)는 '[100 20]'이라는 2차원의 벡터를 상기 문서 파일에 대응되는 특징 벡터로 생성할 수 있다. 이러한 방식으로, 특징 벡터 생성부(112)는 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성할 수 있다.
군집화부(113)는 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 기초로 K-평균 군집화(K-means Clustering)를 수행하여 상기 복수의 문서 파일들을 K개의 그룹들로 군집화한다.
여기서, K-평균 군집화란 벡터의 형태로 구성된 데이터를 K개의 그룹들로 묶는 알고리즘을 의미하는 것으로, 데이터가 속한 그룹의 중심과 각 데이터 간의 거리의 차이가 최소가 되도록 데이터들을 K개의 그룹들로 군집화하는 알고리즘이다.
이때, 군집화부(113)는 파일의 크기와 개체의 개수로 구성된 특징 벡터를 기초로 상기 복수의 문서 파일들을 K개의 그룹들로 군집화하기 때문에, 상기 복수의 문서 파일들은 파일의 크기가 크면서 개체의 개수가 많은 그룹, 파일의 크기가 중간이면서 개체의 개수가 중간인 그룹, 파일의 크기가 크면서 개체의 개수가 적은 그룹, 파일의 크기가 작으면서 개체의 개수가 많은 그룹, 파일의 크기가 작으면서 개체의 개수가 적은 그룹 등으로 군집화될 수 있다.
이렇게, 상기 복수의 문서 파일들이 K개의 그룹들로 군집화되면, 작업 할당부(114)는 상기 K개의 그룹들 각각을 K개의 문서 변환 서버들(101, 102, 103)에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송한다.
이때, 본 발명의 일실시예에 따르면, 작업 할당부(114)는 성능 순위 테이블 유지부(115), 평균 산출부(116) 및 작업 할당 처리부(117)를 포함할 수 있다.
성능 순위 테이블 유지부(115)는 K개의 문서 변환 서버들(101, 102, 103) 각각의 포맷 변환 성능을 기준으로 사전 지정된 성능 순위에 대한 정보가 기록되어 있는 성능 순위 테이블을 저장하여 유지한다.
예컨대, K를 3이라고 하고, 문서 변환 서버 1(101), 문서 변환 서버 2(102), 문서 변환 서버 3(103)의 순으로 포맷 변환 성능이 우수하다고 하는 경우, 상기 성능 순위 테이블에는 하기의 표 1과 같이 정보가 기록되어 있을 수 있다.
문서 변환 서버 성능 순위
문서 변환 서버 1(101) 1순위
문서 변환 서버 2(102) 2순위
문서 변환 서버 3(103) 3순위
평균 산출부(116)는 상기 K개의 그룹들 각각에 대해, 각 그룹에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름(Euclidean norm)의 평균을 연산함으로써, 상기 K개의 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출한다.
작업 할당 처리부(117)는 상기 K개의 그룹들을 상기 유클리드 노름의 평균이 큰 순서에 따라 상기 성능 순위 테이블에 기록되어 있는 성능 순위가 높은 문서 변환 서버에 순차적으로 하나씩 대응시킴으로써, 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 상기 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송한다.
관련해서, 평균 산출부(116)와 작업 할당 처리부(117)의 동작을 예를 들어 설명하면 다음과 같다.
우선, K를 3이라고 하고, 상기 성능 순위 테이블이 상기 표 1과 같다고 하며, 상기 복수의 문서 파일들이 '그룹 1', '그룹 2', '그룹 3'으로 군집화되었다고 하는 경우, 평균 산출부(116)는 상기 3개의 그룹들 각각에 대해, 각 그룹에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름의 평균을 연산함으로써, 상기 3개의 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출할 수 있다.
여기서, 유클리드 노름이란 벡터나 행렬의 유클리드 공간 상에서의 크기를 나타내는 L2 노름으로, 하기의 수학식 1와 같이 나타낼 수 있다.
Figure 112020077450908-pat00001
여기서,
Figure 112020077450908-pat00002
가 유클리드 노름,
Figure 112020077450908-pat00003
는 벡터 또는 행렬의 k번째 성분을 의미한다.
관련해서, '그룹 1'에 10개의 문서 파일들이 속해 있다고 하는 경우, 평균 산출부(116)는 '그룹 1'에 대해서 10개의 문서 파일들 각각에 대한 특징 벡터의 유클리드 노름을 연산한 후 10개의 문서 파일들에 대한 유클리드 노름의 평균을 연산함으로써, '그룹 1'에 대한 유클리드 노름의 평균을 산출할 수 있다. 이러한 방식으로, 평균 산출부(116)는 '그룹 2'와 '그룹 3'에 대해서도 각각 유클리느 노름의 평균을 산출할 수 있다.
그 이후, 작업 할당 처리부(117)는 상기 3개의 그룹들을 상기 유클리드 노름의 평균이 큰 순서에 따라 상기 성능 순위 테이블에 기록되어 있는 성능 순위가 높은 문서 변환 서버에 순차적으로 하나씩 대응시킴으로써, 상기 3개의 그룹들 각각을 3개의 문서 변환 서버들(101, 102, 103)에 하나씩 대응시킬 수 있다.
이와 관련해서, '그룹 1', '그룹 3', '그룹 2'의 순서로 상기 유클리드 노름의 평균이 크게 산출되었다고 하는 경우, 작업 할당 처리부(117)는 상기 유클리드 노름의 평균이 가장 큰 '그룹 1'을 성능 순위가 가장 높은 문서 변환 서버 1(101)에 대응시킬 수 있고, 그 다음으로 상기 유클리드 노름의 평균이 큰 '그룹 3'을 문서 변환 서버 2(102)에 대응시킬 수 있으며, 상기 유클리드 노름의 평균이 가장 작은 '그룹 2'를 성능 순위가 가장 낮은 문서 변환 서버 3(103)에 대응시킬 수 있다.
여기서, 각 그룹에서의 유클리드 노름의 평균이 크다는 의미는 각 그룹에 포함되어 있는 문서 파일들의 크기가 크고, 개체 수가 많다라는 의미이기 때문에, 유클리드 노름의 평균이 크게 산출된 그룹에 포함되어 있는 문서 파일들에 대해서는 포맷 변환에 다소 많은 시간이 소요될 수 있다. 따라서, 작업 할당 처리부(117)는 문서의 포맷 변환에 다소 많은 시간이 소요될 것으로 예상되는 그룹(즉, 유클리드 노름의 평균이 큰 그룹)에 대해 포맷 변환 성능이 상대적으로 우수한 문서 변환 서버를 대응시킴으로써, 보다 빠른 문서 포맷 변환이 가능하도록 지원할 수 있다.
이렇게, 3개의 그룹들 각각이 3개의 문서 변환 서버들(101, 102, 103)에 하나씩 대응이 완료되면, 작업 할당 처리부(117)는 상기 3개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송한다.
즉, 작업 할당 처리부(117)는 문서 변환 서버 1(101)로 '그룹 1'에 포함된 문서 파일들의 포맷 변환을 수행할 것을 지시하는 작업 명령을 전송할 수 있고, 문서 변환 서버 2(102)로 '그룹 3'에 포함된 문서 파일들의 포맷 변환을 수행할 것을 지시하는 작업 명령을 전송할 수 있으며, 문서 변환 서버 3(103)으로 '그룹 2'에 포함된 문서 파일들의 포맷 변환을 수행할 것을 지시하는 작업 명령을 전송할 수 있다.
여기서, 작업 할당 처리부(117)는 상기 작업 명령 내에 각 그룹에 포함된 문서 파일들을 함께 첨부하여 각 문서 변환 서버로 전송할 수 있다. 즉, 작업 할당 처리부(117)는 '그룹 1'에 포함된 문서 파일들과 그 파일들의 포맷 변환을 수행할 것을 지시하는 명령어가 포함된 작업 명령을 생성하여 문서 변환 서버 1(101)로 전송할 수 있고, '그룹 3'에 포함된 문서 파일들과 그 파일들의 포맷 변환을 수행할 것을 지시하는 명령어가 포함된 작업 명령을 생성하여 문서 변환 서버 2(102)로 전송할 수 있으며, '그룹 2'에 포함된 문서 파일들과 그 파일들의 포맷 변환을 수행할 것을 지시하는 명령어가 포함된 작업 명령을 생성하여 문서 변환 서버 3(103)으로 전송할 수 있다.
그리고, 작업 할당 처리부(117)가 전송하는 상기 작업 명령에는 각 그룹에 포함된 문서 파일들을 각 문서 파일에 대해서 지정된 타겟 포맷으로 변환하라는 명령어가 포함되어 있다. 예컨대, '문서 파일 1'에 대해서는 원래 포맷이 'docx' 확장자의 포맷인데, 'hwp' 확장자의 포맷으로 변환되어야 하고, '문서 파일 2'에 대해서는 원래 포맷이 'hwp' 확장자의 포맷인데, 'pdf' 확장자의 포맷으로 변환되어야 하는 경우라면, 상기 작업 명령 내에는 '문서 파일 1'을 'docx' 확장자의 포맷에서 'hwp' 확장자의 포맷으로 변환하라는 명령어와, '문서 파일 2'를 'hwp' 확장자의 포맷에서 'pdf' 확장자의 포맷으로 변환하라는 명령어가 포함되어 있다.
이렇게, 본 발명에 따른 문서 변환 작업 할당 스케줄링 장치(110)가 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송하게 되면, K개의 문서 변환 서버들(101, 102, 103)은 문서 변환 작업 할당 스케줄링 장치(110)로부터 수신된 상기 작업 명령에 기초하여 각 그룹에 포함된 문서 파일들에 대한 포맷 변환을 수행할 수 있다.
본 발명의 일실시예에 따르면, 작업 할당부(114)는 상기 K개의 그룹들 각각에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름이 큰 순서로 상기 K개의 그룹들 각각에 포함된 문서 파일들에 대한 작업 순번을 할당한 후 K개의 문서 변환 서버들(101, 102, 103) 각각에 대해, 대응되는 그룹에 포함된 문서 파일들에 할당되어 있는 작업 순번에 따라 문서 파일의 포맷 변환을 수행할 것을 지시하는 상기 작업 명령을 전송할 수 있다.
관련해서, 전술 예에 따라, '그룹 1'이 문서 변환 서버 1(101)에 대응되었고, '그룹 3'이 문서 변환 서버 2(102)에 대응되었으며, '그룹 2'가 문서 변환 서버 3(103)에 대응되었다고 하는 경우, 작업 할당부(114)는 '그룹 1', '그룹 2', '그룹 3' 각각에 대해, 각 그룹에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름이 큰 순서로 각 문서 파일에 대한 작업 순번을 할당할 수 있다.
예컨대, '그룹 1'에 '문서 파일 1, 2, 3'이 포함되어 있다고 하고, '문서 파일 1', '문서 파일 3', '문서 파일 2'의 순으로 특징 벡터의 유클리드 노름이 크다고 하는 경우, 작업 할당부(114)는 '그룹 1'에 대해 '문서 파일 1', '문서 파일 3', '문서 파일 2'의 순으로 포맷 변환 작업이 수행되도록 하는 작업 순번을 할당할 수 있다. 이러한 방식으로, 작업 할당부(114)는 '그룹 2'와 '그룹 3'에 대해서도 각 그룹의 문서 파일의 특징 벡터에 대한 유클리드 노름이 큰 순서로 작업 순번을 할당할 수 있다.
즉, 문서 파일의 특징 벡터에 대한 유클리드 노름이 크다는 의미는 해당 문서 파일의 크기가 크고, 개체 수가 많다는 의미이므로, 포맷 변환에 상대적으로 많은 시간이 소요된다는 의미이기 때문에, 작업 할당부(114)는 '그룹 1', '그룹 2', '그룹 3' 각각에 대해, 각 그룹에 포함된 문서 파일의 포맷 변환에 소요되는 시간이 큰 순서로 각 문서 파일의 작업 순번을 할당할 수 있다.
이렇게, '그룹 1', '그룹 2', '그룹 3'에 포함된 문서 파일들에 대한 작업 순번의 할당이 완료되면, 작업 할당부(114)는 3개의 문서 변환 서버들(101, 102, 103)로 각 그룹에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 전송할 때, 각 그룹에 포함된 문서 파일들에 할당되어 있는 작업 순번에 따라 포맷 변환 작업을 수행하도록 하는 상기 작업 명령을 전송할 수 있다.
이로 인해, 3개의 문서 변환 서버들(101, 102, 103)은 상기 작업 명령이 수신되면, 각 그룹에 포함된 문서 파일들에 대한 포맷 변환 작업을 진행하되, 각 그룹에 포함된 문서 파일들에 할당되어 있는 작업 순번에 따라 포맷 변환 작업을 진행할 수 있다.
예컨대, '그룹 1'에 대해서는 '문서 파일 1', '문서 파일 3', '문서 파일 2'의 순서로 작업 순번이 할당되어 있기 때문에, 문서 변환 서버 1(101)은 '문서 파일 1', '문서 파일 3', '문서 파일 2'의 순서로 포맷 변환 작업을 수행할 수 있다.
본 발명의 일실시예에 따르면, 문서 변환 작업 할당 스케줄링 장치(110)는 확인부(118), 문서 파일 선택부(119) 및 작업 재할당부(120)를 더 포함할 수 있다.
확인부(118)는 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령이 각 그룹에 대응되는 문서 변환 서버로 전송된 이후, K개의 문서 변환 서버들(101, 102, 103) 중 어느 하나인 제1 문서 변환 서버에서 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되는 경우, 상기 복수의 문서 파일들 중 K개의 문서 변환 서버들(101, 102, 103)을 통해 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일이 존재하는지 확인한다.
문서 파일 선택부(119)는 상기 복수의 문서 파일들 중 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일로 적어도 하나의 제1 문서 파일이 존재하는 것으로 확인되는 경우, 상기 적어도 하나의 제1 문서 파일 중 상기 적어도 하나의 제1 문서 파일의 특징 벡터에 대한 유클리드 노름이 작은 순서로 1/K의 비율만큼에 해당되는 적어도 하나의 제2 문서 파일을 선택한다.
작업 재할당부(120)는 K개의 문서 변환 서버들(101, 102, 103) 중 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업이 할당되어 있던 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업을 취소할 것을 지시하는 작업 취소 명령을 전송한 후 상기 제1 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환을 추가로 수행할 것을 지시하는 추가 작업 명령을 전송한다.
이하에서는 확인부(118), 문서 파일 선택부(119) 및 작업 재할당부(120)의 동작에 대해 예를 들어 상세히 설명하기로 한다.
우선, 전술한 예와 같이 K를 3이라고 하고, '그룹 1'에 포함된 문서 파일들에 대한 작업 명령이 문서 변환 서버 1(101)로 전송되었고, '그룹 3'에 포함된 문서 파일들에 대한 작업 명령이 문서 변환 서버 2(102)로 전송되었으며, '그룹 2'에 포함된 문서 파일들에 대한 작업 명령이 문서 변환 서버 3(103)으로 전송되었다고 가정하자.
만약, 3개의 문서 변환 서버들(101, 102, 103) 중 어느 하나인 문서 변환 서버 3(103)에서 '그룹 2'에 포함된 문서 파일들에 대한 포맷 변환 작업이 먼저 완료되는 경우, 확인부(118)는 문서 변환 서버 3(103)에서 포맷 변환 작업이 완료된 것으로 확인한 후 상기 복수의 문서 파일들 중 3개의 문서 변환 서버들(101, 102, 103)을 통해서 포맷 변환 작업이 아진 진행되고 있지 않은 문서 파일이 존재하는지 확인할 수 있다.
만약, 상기 복수의 문서 파일들 중 '그룹 1'과 '그룹 3'에 포함되어 있는 일부 문서 파일들인 적어도 하나의 제1 문서 파일이 아직 문서 변환 서버 1(101)과 문서 변환 서버 2(102)에서 문서 변환 작업에 착수되지 않고, 작업 대기 중에 있는 상황이라고 한다면, 문서 파일 선택부(119)는 상기 적어도 하나의 문서 파일의 특징 벡터에 대한 유클리드 노름이 작은 순서로 '1/3'의 비율만큼에 해당되는 적어도 하나의 제2 문서 파일을 선택할 수 있다.
관련해서, 상기 적어도 하나의 제1 문서 파일의 개수가 '13개'라고 하는 경우, 문서 파일 선택부(119)는 상기 유클리드 노름이 작은 순서(즉, 포맷 변환에 시간이 상대적으로 적게 소요되는 순서)로 '4개(소수점 이하 자리는 버림)'의 문서 파일을 상기 적어도 하나의 제2 문서 파일로 선택할 수 있다.
그 이후, 작업 재할당부(120)는 3개의 문서 변환 서버들(101, 102, 103) 중 문서 변환 서버 1(101)과 문서 변환 서버 2(102)에 대해 상기 적어도 하나의 제2 문서 파일의 포맷 변환 작업을 취소할 것을 지시하는 작업 취소 명령을 전송한 후 문서 변환 서버 3(103)으로 상기 적어도 하나의 제2 문서 파일의 포맷 변환을 추가로 수행할 것을 지시하는 추가 작업 명령을 전송할 수 있다.
즉, 본 발명에 따른 문서 변환 작업 할당 스케줄링 장치(110)는 K개의 문서 변환 서버들(101, 102, 103) 중 어느 특정 문서 변환 서버에서 작업이 완료되면, 아직 작업이 진행되지 않은 문서 파일이 존재하는지 확인한 후 작업이 완료되지 않은 문서 파일 중 문서의 크기가 작고, 개체 수가 적어서 포맷 변환에 상대적으로 시간이 적게 소요되는 문서 파일을 1/K만큼 선택한 후 선택된 문서 파일에 대한 포맷 변환 작업을 작업이 완료된 문서 변환 서버에 추가 할당함으로써, 복수의 문서 파일들에 대한 신속한 포맷 변환 작업이 수행될 수 있도록 지원할 수 있다.
도 2는 본 발명의 일실시예에 따른 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 K(K는 2이상의 자연수)개의 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 복수의 문서 파일들에 대한 포맷 변환 명령이 인가되면, 상기 복수의 문서 파일들 각각의 크기를 확인하고, 상기 복수의 문서 파일들 각각에 삽입되어 있는 개체의 개수를 카운트한다.
단계(S220)에서는 상기 복수의 문서 파일들 각각에 대해, 각 문서 파일의 크기와 각 문서 파일에 삽입되어 있는 개체의 개수를 성분으로 갖는 2차원 벡터를 구성함으로써, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성한다.
단계(S230)에서는 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 기초로 K-평균 군집화를 수행하여 상기 복수의 문서 파일들을 K개의 그룹들로 군집화한다.
단계(S240)에서는 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송한다.
이때, 본 발명의 일실시예에 따르면, 단계(S240)에서는 상기 K개의 문서 변환 서버들 각각의 포맷 변환 성능을 기준으로 사전 지정된 성능 순위에 대한 정보가 기록되어 있는 성능 순위 테이블을 저장하여 유지하는 단계, 상기 K개의 그룹들 각각에 대해, 각 그룹에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름의 평균을 연산함으로써, 상기 K개의 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출하는 단계 및 상기 K개의 그룹들을 상기 유클리드 노름의 평균이 큰 순서에 따라 상기 성능 순위 테이블에 기록되어 있는 성능 순위가 높은 문서 변환 서버에 순차적으로 하나씩 대응시킴으로써, 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 상기 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송 처리하는 단계를 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S240)에서는 상기 K개의 그룹들 각각에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름이 큰 순서로 상기 K개의 그룹들 각각에 포함된 문서 파일들에 대한 작업 순번을 할당한 후 상기 K개의 문서 변환 서버들 각각에 대해, 대응되는 그룹에 포함된 문서 파일들에 할당되어 있는 작업 순번에 따라 문서 파일의 포맷 변환을 수행할 것을 지시하는 상기 작업 명령을 전송할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 문서 변환 작업 할당 스케줄링 장치의 동작 방법은 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령이 각 그룹에 대응되는 문서 변환 서버로 전송된 이후, 상기 K개의 문서 변환 서버들 중 어느 하나인 제1 문서 변환 서버에서 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되는 경우, 상기 복수의 문서 파일들 중 상기 K개의 문서 변환 서버들을 통해 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일이 존재하는지 확인하는 단계, 상기 복수의 문서 파일들 중 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일로 적어도 하나의 제1 문서 파일이 존재하는 것으로 확인되는 경우, 상기 적어도 하나의 제1 문서 파일 중 상기 적어도 하나의 제1 문서 파일의 특징 벡터에 대한 유클리드 노름이 작은 순서로 1/K의 비율만큼에 해당되는 적어도 하나의 제2 문서 파일을 선택하는 단계 및 상기 K개의 문서 변환 서버들 중 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업이 할당되어 있던 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업을 취소할 것을 지시하는 작업 취소 명령을 전송한 후 상기 제1 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환을 추가로 수행할 것을 지시하는 추가 작업 명령을 전송하는 단계를 더 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 동작 방법은 도 1을 이용하여 설명한 문서 변환 작업 할당 스케줄링 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 문서 변환 작업 할당 스케줄링 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 문서 변환 작업 할당 스케줄링 장치
111: 문서 파일 확인부 112: 특징 벡터 생성부
113: 군집화부 114: 작업 할당부
115: 성능 순위 테이블 유지부 116: 평균 산출부
117: 작업 할당 처리부 118: 확인부
119: 문서 파일 선택부 120: 작업 재할당부
101, 102, 103: K개의 문서 변환 서버들

Claims (10)

  1. 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 K(K는 2이상의 자연수)개의 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치에 있어서,
    복수의 문서 파일들에 대한 포맷 변환 명령이 인가되면, 상기 복수의 문서 파일들 각각의 크기를 확인하고, 상기 복수의 문서 파일들 각각에 삽입되어 있는 개체의 개수를 카운트하는 문서 파일 확인부;
    상기 복수의 문서 파일들 각각에 대해, 각 문서 파일의 크기와 각 문서 파일에 삽입되어 있는 개체의 개수를 성분으로 갖는 2차원 벡터를 구성함으로써, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성하는 특징 벡터 생성부;
    상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 기초로 K-평균 군집화(K-means Clustering)를 수행하여 상기 복수의 문서 파일들을 K개의 그룹들로 군집화하는 군집화부; 및
    상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송하는 작업 할당부
    를 포함하고,
    상기 작업 할당부는
    상기 K개의 문서 변환 서버들 각각의 포맷 변환 성능을 기준으로 사전 지정된 성능 순위에 대한 정보가 기록되어 있는 성능 순위 테이블을 저장하여 유지하는 성능 순위 테이블 유지부;
    상기 K개의 그룹들 각각에 대해, 각 그룹에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름(Euclidean norm)의 평균을 연산함으로써, 상기 K개의 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출하는 평균 산출부; 및
    상기 K개의 그룹들을 상기 유클리드 노름의 평균이 큰 순서에 따라 상기 성능 순위 테이블에 기록되어 있는 성능 순위가 높은 문서 변환 서버에 순차적으로 하나씩 대응시킴으로써, 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 상기 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송하는 작업 할당 처리부
    를 포함하는 문서 변환 작업 할당 스케줄링 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 작업 할당부는
    상기 K개의 그룹들 각각에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름이 큰 순서로 상기 K개의 그룹들 각각에 포함된 문서 파일들에 대한 작업 순번을 할당한 후 상기 K개의 문서 변환 서버들 각각에 대해, 대응되는 그룹에 포함된 문서 파일들에 할당되어 있는 작업 순번에 따라 문서 파일의 포맷 변환을 수행할 것을 지시하는 상기 작업 명령을 전송하는 문서 변환 작업 할당 스케줄링 장치.
  4. 제1항에 있어서,
    상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령이 각 그룹에 대응되는 문서 변환 서버로 전송된 이후, 상기 K개의 문서 변환 서버들 중 어느 하나인 제1 문서 변환 서버에서 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되는 경우, 상기 복수의 문서 파일들 중 상기 K개의 문서 변환 서버들을 통해 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일이 존재하는지 확인하는 확인부;
    상기 복수의 문서 파일들 중 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일로 적어도 하나의 제1 문서 파일이 존재하는 것으로 확인되는 경우, 상기 적어도 하나의 제1 문서 파일 중 상기 적어도 하나의 제1 문서 파일의 특징 벡터에 대한 유클리드 노름이 작은 순서로 1/K의 비율만큼에 해당되는 적어도 하나의 제2 문서 파일을 선택하는 문서 파일 선택부; 및
    상기 K개의 문서 변환 서버들 중 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업이 할당되어 있던 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업을 취소할 것을 지시하는 작업 취소 명령을 전송한 후 상기 제1 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환을 추가로 수행할 것을 지시하는 추가 작업 명령을 전송하는 작업 재할당부
    를 더 포함하는 문서 변환 작업 할당 스케줄링 장치.
  5. 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 K(K는 2이상의 자연수)개의 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치의 동작 방법에 있어서,
    복수의 문서 파일들에 대한 포맷 변환 명령이 인가되면, 상기 복수의 문서 파일들 각각의 크기를 확인하고, 상기 복수의 문서 파일들 각각에 삽입되어 있는 개체의 개수를 카운트하는 단계;
    상기 복수의 문서 파일들 각각에 대해, 각 문서 파일의 크기와 각 문서 파일에 삽입되어 있는 개체의 개수를 성분으로 갖는 2차원 벡터를 구성함으로써, 상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 생성하는 단계;
    상기 복수의 문서 파일들 각각에 대응되는 특징 벡터를 기초로 K-평균 군집화(K-means Clustering)를 수행하여 상기 복수의 문서 파일들을 K개의 그룹들로 군집화하는 단계; 및
    상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송하는 단계
    를 포함하고,
    상기 전송하는 단계는
    상기 K개의 문서 변환 서버들 각각의 포맷 변환 성능을 기준으로 사전 지정된 성능 순위에 대한 정보가 기록되어 있는 성능 순위 테이블을 저장하여 유지하는 단계;
    상기 K개의 그룹들 각각에 대해, 각 그룹에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름(Euclidean norm)의 평균을 연산함으로써, 상기 K개의 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출하는 단계; 및
    상기 K개의 그룹들을 상기 유클리드 노름의 평균이 큰 순서에 따라 상기 성능 순위 테이블에 기록되어 있는 성능 순위가 높은 문서 변환 서버에 순차적으로 하나씩 대응시킴으로써, 상기 K개의 그룹들 각각을 상기 K개의 문서 변환 서버들에 하나씩 대응시킨 후 상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 상기 작업 명령을 각 그룹에 대응되는 문서 변환 서버로 전송 처리하는 단계
    를 포함하는 문서 변환 작업 할당 스케줄링 장치의 동작 방법.
  6. 삭제
  7. 제5항에 있어서,
    상기 전송하는 단계는
    상기 K개의 그룹들 각각에 포함된 문서 파일들의 특징 벡터에 대한 유클리드 노름이 큰 순서로 상기 K개의 그룹들 각각에 포함된 문서 파일들에 대한 작업 순번을 할당한 후 상기 K개의 문서 변환 서버들 각각에 대해, 대응되는 그룹에 포함된 문서 파일들에 할당되어 있는 작업 순번에 따라 문서 파일의 포맷 변환을 수행할 것을 지시하는 상기 작업 명령을 전송하는 문서 변환 작업 할당 스케줄링 장치의 동작 방법.
  8. 제5항에 있어서,
    상기 K개의 그룹들 각각에 포함된 문서 파일들의 포맷 변환을 지시하는 작업 명령이 각 그룹에 대응되는 문서 변환 서버로 전송된 이후, 상기 K개의 문서 변환 서버들 중 어느 하나인 제1 문서 변환 서버에서 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되는 경우, 상기 복수의 문서 파일들 중 상기 K개의 문서 변환 서버들을 통해 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일이 존재하는지 확인하는 단계;
    상기 복수의 문서 파일들 중 포맷 변환 작업이 아직 진행되고 있지 않은 문서 파일로 적어도 하나의 제1 문서 파일이 존재하는 것으로 확인되는 경우, 상기 적어도 하나의 제1 문서 파일 중 상기 적어도 하나의 제1 문서 파일의 특징 벡터에 대한 유클리드 노름이 작은 순서로 1/K의 비율만큼에 해당되는 적어도 하나의 제2 문서 파일을 선택하는 단계; 및
    상기 K개의 문서 변환 서버들 중 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업이 할당되어 있던 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환 작업을 취소할 것을 지시하는 작업 취소 명령을 전송한 후 상기 제1 문서 변환 서버로 상기 적어도 하나의 제2 문서 파일에 대한 포맷 변환을 추가로 수행할 것을 지시하는 추가 작업 명령을 전송하는 단계
    를 더 포함하는 문서 변환 작업 할당 스케줄링 장치의 동작 방법.
  9. 제5항, 제7항 또는 제8항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 제5항, 제7항 또는 제8항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020200092111A 2020-07-24 2020-07-24 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법 KR102466717B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200092111A KR102466717B1 (ko) 2020-07-24 2020-07-24 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200092111A KR102466717B1 (ko) 2020-07-24 2020-07-24 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20220013082A KR20220013082A (ko) 2022-02-04
KR102466717B1 true KR102466717B1 (ko) 2022-11-15

Family

ID=80267733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200092111A KR102466717B1 (ko) 2020-07-24 2020-07-24 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102466717B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017534108A (ja) 2014-09-26 2017-11-16 オラクル・インターナショナル・コーポレイション 推薦されるデータ変換および修復のための宣言型言語およびビジュアライゼーションシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7440967B2 (en) * 2004-11-10 2008-10-21 Xerox Corporation System and method for transforming legacy documents into XML documents
RU2368006C1 (ru) * 2008-01-10 2009-09-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ и система адаптивного переформатирования цифровых изображений
KR101840024B1 (ko) * 2016-02-18 2018-03-20 (주)퍼스트정보 전자 문서 변환 방법 및 장치
KR102053071B1 (ko) * 2018-04-23 2020-01-08 주식회사 한글과컴퓨터 브라우저에 탑재된 웹 에디터를 통해 웹 기반 문서의 저장을 위한 포맷 변환을 지원하는 클라이언트 단말 장치 및 그 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017534108A (ja) 2014-09-26 2017-11-16 オラクル・インターナショナル・コーポレイション 推薦されるデータ変換および修復のための宣言型言語およびビジュアライゼーションシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박보국 et al. "데이터마이닝 기법을 이용한 프로그래밍 대회 소스코드 분석." 한국정보과학회 학술발표논문집 (2014): 930-932.*

Also Published As

Publication number Publication date
KR20220013082A (ko) 2022-02-04

Similar Documents

Publication Publication Date Title
CN109189841B (zh) 一种多数据源访问方法及系统
CN111143446A (zh) 数据对象的数据结构转换处理方法、装置及电子设备
CN110888842A (zh) 一种文件存储方法、文件查询方法、装置及设备
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN111339057A (zh) 减少回源请求的方法、装置及计算机可读存储介质
CN113076153A (zh) 一种接口调用方法和装置
KR102466717B1 (ko) 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법
CN113626512A (zh) 数据处理方法、装置、设备及可读存储介质
US20040107204A1 (en) File management apparatus
CN108427704A (zh) 压缩工具调用方法、装置及存储介质
CN102651721A (zh) 一种信息反馈方法和设备
US20080082473A1 (en) Peer based event conversion
CN111225032A (zh) 一种应用服务与文件服务分离的方法、系统、设备和介质
CN101415029B (zh) 文件分发方法及装置
KR102417824B1 (ko) 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 종이 문서의 스캔 이미지와 유사한 문서 파일의 로드를 수행하는 문서 관리 서버 및 그 동작 방법
CN112380040B (zh) 一种消息处理的方法、装置、电子设备及存储介质
KR102375509B1 (ko) 복수의 포맷 변환 서버들에 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 파일의 포맷 변환 작업 할당 장치 및 그 동작 방법
KR102545266B1 (ko) 복수의 포맷 변환 서버들의 상태를 기초로 문서 파일의 포맷 변환 작업을 할당하기 위한 스케줄링을 수행하는 스케줄링 장치 및 그 동작 방법
KR102500742B1 (ko) 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법
JP6859407B2 (ja) データ処理用の方法及び装置
CN113407339A (zh) 资源请求反馈方法、装置、可读存储介质及电子设备
KR20090124177A (ko) 대용량 이미지 처리 장치 및 그 방법
US7823110B2 (en) Method and system for processing geometrical layout design data
EP2187312B1 (en) Information search system, information search method, and program
CN112052377A (zh) 资源推荐方法、装置、服务器和存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant