KR20230007705A - 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법 - Google Patents
동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20230007705A KR20230007705A KR1020210088364A KR20210088364A KR20230007705A KR 20230007705 A KR20230007705 A KR 20230007705A KR 1020210088364 A KR1020210088364 A KR 1020210088364A KR 20210088364 A KR20210088364 A KR 20210088364A KR 20230007705 A KR20230007705 A KR 20230007705A
- Authority
- KR
- South Korea
- Prior art keywords
- format conversion
- document file
- matrix
- server
- format
- Prior art date
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 462
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 45
- 238000011017 operating method Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims abstract description 53
- 239000011159 matrix material Substances 0.000 claims description 225
- 239000013598 vector Substances 0.000 claims description 85
- 230000005540 biological transmission Effects 0.000 claims description 47
- 238000012790 confirmation Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000005226 mechanical processes and functions Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- 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
-
- 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/505—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 load
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법이 개시된다. 본 발명은 클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 작업 대상 서버를 선택한 후, 상기 작업 대상 서버에 대해, 사전 설정된 제1 시간 동안에는 동기 방식으로, 상기 제1 시간이 경과한 이후에는 비동기 방식으로 상기 문서 파일에 대한 포맷 변환 작업을 수행할 것을 지시하는 포맷 변환 작업 할당 장치 및 그 동작 방법에 대한 것이다.
Description
본 발명은 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법에 대한 것이다.
최근, 다양한 종류의 문서 열람 및 편집 프로그램들이 등장함에 따라, 이러한 프로그램들에서 호환되는 다양한 종류의 전자 문서 포맷들이 등장하고 있다. 예컨대, 'docx', 'hwp', 'pdf' 등과 같은 확장자를 갖는 다양한 문서 포맷이 존재한다.
아울러, 최근에는 기업 등과 같은 각종 기관에서 업무의 효율성을 높이기 위해, 브라우저 상에서 다양한 전자 문서를 열람하고, 작성할 수 있도록 하는 웹 기반의 업무 시스템을 도입하는 경우가 증가하고 있다.
이러한 웹 기반의 업무 시스템은 브라우저 상에 문서 작성이 가능하도록 하는 웹 에디터가 탑재되어 있어서, 사용자가 브라우저를 통해 웹 에디터를 구동한 후 상기 웹 에디터를 통해 다양한 문서를 열람 및 작성할 수 있도록 지원하며, 이렇게 문서 작성이 완료되면, 작성이 완료된 문서를 다른 사용자에게 공유할 수 있도록 지원하고 있다.
웹 기반의 업무 시스템에서는 전자 문서가 브라우저 상에 표시되어야 하기 때문에 HTML(Hypertext Markup Language)과 같이 마크업 언어 포맷으로 구성된 웹 문서가 주로 사용된다.
이렇게, 다양한 포맷의 전자 문서가 사용됨에 따라, 특정 포맷으로 생성된 문서 파일을 다른 포맷으로 변환할 수 있는 포맷 변환 기능의 중요성이 증가하고 있다. 예컨대, 'docx'의 확장자 포맷으로 작성된 문서 파일을 'hwp'의 확장자 포맷의 문서 파일로 변환하거나, 'hwp'의 확장자 포맷으로 작성된 문서 파일을 HTML 기반의 웹 문서로 변환하는 포맷 변환 기능의 중요성이 증가하고 있다.
이와 관련해서, 문서 파일의 포맷 변환 기능을 지원하는 기존의 포맷 변환 서비스에서는, 주로 동기(synchronous) 방식이나 비동기(asynchronous) 방식으로 문서 파일의 포맷 변환 작업을 수행하는 경우가 많다.
여기서, 동기 방식은 문서 파일의 포맷 변환이 완료될 때까지 대기하였다가, 문서 파일의 포맷 변환이 완료되면, 포맷 변환이 완료된 문서 파일을 결과물로 획득하는 방식을 의미하고, 비동기 방식은 소정 주기 간격으로 문서 파일의 포맷 변환이 완료되었는지를 체크하여 특정 주기에서 체크하였을 때, 문서 파일의 포맷 변환이 완료된 것으로 확인되면, 포맷 변환이 완료된 문서 파일을 결과물로 획득하는 방식을 의미한다.
관련해서, 동기 방식으로 문서 파일의 포맷 변환 작업을 수행하는 경우에는, 문서 파일의 포맷 변환 작업이 완료될 때까지, 사용자에게 포맷 변환 작업의 작업 완료율에 대한 정보를 제공할 수 없다는 문제점이 있었다. 또한, 비동기 방식으로 문서 파일의 포맷 변환 작업을 수행하는 경우에는, 포맷 변환 작업이 수행되는 동안 사용자에게 작업 완료율에 대한 정보를 제공할 수 있지만, 문서 파일의 파일 크기가 작다면 동기 방식으로 포맷 변환 작업을 수행하는 경우보다 더 많은 시간이 소요될 수 있다는 문제점이 있었다.
만약, 동기 방식과 비동기 방식을 적절하게 혼용하여 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 기술이 도입된다면, 보다 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있을 것이다.
따라서, 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 기술에 대한 연구가 필요하다.
본 발명은 클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 작업 대상 서버를 선택한 후, 상기 작업 대상 서버에 대해, 사전 설정된 제1 시간 동안에는 동기 방식으로, 상기 제1 시간이 경과한 이후에는 비동기 방식으로 상기 문서 파일에 대한 포맷 변환 작업을 수행할 것을 지시하는 포맷 변환 작업 할당 장치 및 그 동작 방법을 제시함으로써, 보다 효율적으로 문서 파일의 포맷 변환 작업이 수행될 수 있도록 지원하고자 한다.
본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치는 클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 어느 하나의 포맷 변환 서버를 상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택하는 서버 선택부, 상기 작업 대상 서버가 선택되면, 동기(synchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 동기 변환 이벤트를 발생시키는 동기 변환 이벤트 발생부, 상기 동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 문서 파일과, 상기 문서 파일의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, 상기 작업 대상 서버로 인보크(invoke) 조건 - 상기 인보크 조건은 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 상기 포맷 변환 작업 할당 장치로 피드백할 것을 인보크시키는 조건임 - 을 설정할 것을 지시하는 조건 설정 명령을 전송하는 명령 전송부, 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 사전 설정된 제1 시간이 경과하기 전에, 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료됨에 따라, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 제1 문서 파일 전송부, 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 상기 제1 시간이 경과할 때까지, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되지 않는 경우, 비동기(asynchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시키는 비동기 변환 이벤트 발생부, 상기 비동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송하는 조건 제거 명령 전송부, 상기 작업 대상 서버로 상기 조건 제거 명령이 전송되면, 사전 설정된 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 작업 확인부 및 상기 작업 확인부에 의해, t(t는 자연수임)번째 확인 주기에서, 상기 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 제2 문서 파일 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법은 클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 어느 하나의 포맷 변환 서버를 상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택하는 단계, 상기 작업 대상 서버가 선택되면, 동기 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 동기 변환 이벤트를 발생시키는 단계, 상기 동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 문서 파일과, 상기 문서 파일의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, 상기 작업 대상 서버로 인보크 조건 - 상기 인보크 조건은 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 상기 포맷 변환 작업 할당 장치로 피드백할 것을 인보크시키는 조건임 - 을 설정할 것을 지시하는 조건 설정 명령을 전송하는 단계, 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 사전 설정된 제1 시간이 경과하기 전에, 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료됨에 따라, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 단계, 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 상기 제1 시간이 경과할 때까지, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되지 않는 경우, 비동기 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시키는 단계, 상기 비동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송하는 단계, 상기 작업 대상 서버로 상기 조건 제거 명령이 전송되면, 사전 설정된 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 단계 및 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 단계에 의해, t(t는 자연수임)번째 확인 주기에서, 상기 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 단계를 포함한다.
본 발명은 클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 작업 대상 서버를 선택한 후, 상기 작업 대상 서버에 대해, 사전 설정된 제1 시간 동안에는 동기 방식으로, 상기 제1 시간이 경과한 이후에는 비동기 방식으로 상기 문서 파일에 대한 포맷 변환 작업을 수행할 것을 지시하는 포맷 변환 작업 할당 장치 및 그 동작 방법을 제시함으로써, 보다 효율적으로 문서 파일의 포맷 변환 작업이 수행될 수 있도록 지원할 수 있다.
도 1은 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법을 도시한 순서도이다.
도 2는 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치(110)는 서버 선택부(111), 동기 변환 이벤트 발생부(112), 명령 전송부(113), 제1 문서 파일 전송부(114), 비동기 변환 이벤트 발생부(115), 조건 제거 명령 전송부(116), 작업 확인부(117) 및 제2 문서 파일 전송부(118)를 포함한다.
서버 선택부(111)는 클라이언트 단말(140)로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들(151, 152, 153) 중 어느 하나의 포맷 변환 서버를 상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택한다.
이때, 본 발명의 일실시예에 따르면, 서버 선택부(111)는 상기 복수의 포맷 변환 서버들(151, 152, 153) 중 어느 하나의 포맷 변환 서버를 상기 작업 대상 서버로 선택하기 위한 구체적인 구성으로, 정보 저장부(119), 서버 확인부(120), 파일 특징 벡터 생성부(121), 서버 특징 벡터 생성부(122), 거리 연산부(123) 및 선택 처리부(124)를 포함할 수 있다.
정보 저장부(119)에는 복수의 포맷 변환 서버들(151, 152, 153) 각각에 대응되는 것으로 사전 설정된 서로 다른 작업 할당 기준 정보가 저장되어 있다.
여기서, 상기 작업 할당 기준 정보는 복수의 포맷 변환 서버들(151, 152, 153) 중 상기 작업 대상 서버를 선택하기 위한 기준치를 의미하는 정보로, 상기 작업 할당 기준 정보에는, 각 포맷 변환 서버에 대응되는 것으로 사전 설정된 기준 파일 크기 값과 기준 개체 수가 쌍으로 포함되어 있다.
관련해서, 복수의 포맷 변환 서버들(151, 152, 153)을 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)'이라고 하는 경우, 정보 저장부(119)에는 하기의 표 1과 같은 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대응되는 것으로 사전 설정된 서로 다른 작업 할당 기준 정보가 저장되어 있을 수 있다.
포맷 변환 서버 | 작업 할당 기준 정보 | |
기준 파일 크기 값 (KB) | 기준 개체 수 (개) | |
포맷 변환 서버 1(151) | 100 | 10 |
포맷 변환 서버 2(152) | 200 | 20 |
포맷 변환 서버 3(153) | 500 | 50 |
서버 확인부(120)는 클라이언트 단말(140)로부터, 상기 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 복수의 포맷 변환 서버들(151, 152, 153)과 접속하여, 복수의 포맷 변환 서버들(151, 152, 153) 중 유휴(idle)상태인 포맷 변환 서버가 존재하는지 여부를 확인한다.
파일 특징 벡터 생성부(121)는 상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버로, 적어도 하나의 제1 포맷 변환 서버가 존재하는 것으로 확인되면, 상기 문서 파일의 파일 크기 값을 확인하고, 상기 문서 파일에 따른 문서 내에 삽입되어 있는 개체의 개수를 카운트한 후, 상기 문서 파일의 파일 크기 값과 상기 개체의 개수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 문서 파일에 대응되는 특징 벡터를 생성한다.
여기서, 개체란 전자 문서 내에 삽입되어 있는 도형, 표, 이미지 등과 같은 아이템을 의미한다.
서버 특징 벡터 생성부(122)는 정보 저장부(119)를 참조하여, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 기준 파일 크기 값과 기준 개체 수를 확인한 후, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대해, 각 포맷 변환 서버에 대응되는 기준 파일 크기 값과 기준 개체 수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대한 특징 벡터를 생성한다.
거리 연산부(123)는 상기 문서 파일에 대응되는 특징 벡터와 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 특징 벡터 간의 유클리드 거리(Euclidean distance)를 연산한다.
여기서, 유클리드 거리란 두 개의 벡터가 존재한다고 하였을 때, 두 벡터 간의 거리를 의미하는 것으로, 하기의 수학식 1에 따라 연산될 수 있다.
상기 수학식 1에서 D는 벡터 A와 벡터 B 간의 유클리드 거리를 의미하고, Ai와 Bi는 각각 벡터 A와 벡터 B에 포함되어 있는 성분들 중 i번째 성분들을 의미한다. 보통, 두 벡터 간의 유클리드 거리가 작을수록 두 벡터는 유사한 벡터라고 볼 수 있고, 두 벡터 간의 유클리드 거리가 클수록 두 벡터는 비유사한 벡터라고 볼 수 있다.
선택 처리부(124)는 상기 적어도 하나의 제1 포맷 변환 서버 중 상기 유클리드 거리가 최소로 연산된 포맷 변환 서버를, 상기 작업 대상 서버로 선택한다.
이하에서는, 서버 확인부(120), 파일 특징 벡터 생성부(121), 서버 특징 벡터 생성부(122), 거리 연산부(123)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 복수의 포맷 변환 서버들(151, 152, 153)을 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)'이라고 하고, 클라이언트 단말(140)로부터, '문서 파일 1'이 수신되면서, '문서 파일 1'에 대한 포맷 변환 요청이 수신되었다고 가정하자.
그러면, 서버 확인부(120)는 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)'과 접속하여, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 중 유휴상태인 포맷 변환 서버가 존재하는지 여부를 확인할 수 있다.
이때, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 중 유휴상태인 포맷 변환 서버로, '포맷 변환 서버 2(152), 포맷 변환 서버 3(153)'이 존재하는 것으로 확인되었다고 가정하자.
그러면, 파일 특징 벡터 생성부(121)는 '문서 파일 1'의 파일 크기 값과 '문서 파일 1'의 문서 내에 삽입되어 있는 개체의 개수를 카운트할 수 있다.
이때, 파일 특징 벡터 생성부(121)에 의해, '문서 파일 1'의 파일 크기 값이 '100KB'인 것으로 확인되었다고 하고, 상기 개체의 개수가 '5개'인 것으로 카운트되었다고 하는 경우, 파일 특징 벡터 생성부(121)는 '100(KB), 5(개)'를 성분으로 갖는 2차원의 벡터를 구성함으로써, '문서 파일 1'에 대응되는 특징 벡터를 '[100 5]'와 같이 생성할 수 있다.
그러고 나서, 서버 특징 벡터 생성부(122)는 상기 표 1과 같은 정보 저장부(119)를 참조하여, '포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대응되는 기준 파일 크기 값과 기준 개체 수를 확인한 후, '포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대해, 각 포맷 변환 서버에 대응되는 기준 파일 크기 값과 기준 개체 수를 성분으로 갖는 2차원의 벡터를 구성함으로써, '포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대한 특징 벡터를 생성할 수 있다.
관련해서, 상기 표 1과 같은 정보 저장부(119)에서는, '포맷 변환 서버 2(152)'에 대응되는 기준 파일 크기 값과 기준 개체 수가 '200(KB), 20(개)'이고, '포맷 변환 서버 3(153)'에 대응되는 기준 파일 크기 값과 기준 개체 수가 '500(KB), 50(개)'이므로, 서버 특징 벡터 생성부(122)는 '포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대한 특징 벡터를 '[200 20], [500 50]'과 같이 생성할 수 있다.
그러면, 거리 연산부(123)는 상기 수학식 1에 따라, '문서 파일 1'에 대응되는 특징 벡터인 '[100 5]'와, '포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대한 특징 벡터인 '[200 20], [500 50]' 간의 유클리드 거리를 연산할 수 있다.
이때, '포맷 변환 서버 2(152)'의 상기 유클리드 거리가, '포맷 변환 서버 3(153)'의 상기 유클리드 거리보다 작은 값으로 연산되었다고 하는 경우, 선택 처리부(124)는 '포맷 변환 서버 2(152)'를 상기 작업 대상 서버로 선택할 수 있다.
한편, 시스템 상황에 따라서는, 복수의 포맷 변환 서버들(151, 152, 153) 중 유휴상태인 포맷 변환 서버가 존재하지 않는 경우도 있을 수 있다.
이와 관련해서, 본 발명의 일실시예에 따르면, 서버 선택부(111)는 복수의 포맷 변환 서버들(151, 152, 153) 중 유휴상태인 포맷 변환 서버가 존재하지 않는 경우 복수의 포맷 변환 서버들(151, 152, 153) 중 상기 작업 대상 서버를 선택하기 위한 구성으로, 상태 벡터 생성부(125), 노름 연산부(126) 및 대체 선택 처리부(127)를 더 포함할 수 있다.
상태 벡터 생성부(125)는 서버 확인부(120)에 의해, 복수의 포맷 변환 서버들(151, 152, 153) 중 유휴상태인 포맷 변환 서버가 존재하지 않는 것으로 확인되는 경우, 상기 복수의 포맷 변환 서버들 각각의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 확인한 후, 복수의 포맷 변환 서버들(151, 152, 153) 각각에 대해, 각 포맷 변환 서버의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 성분으로 갖는 3차원의 벡터를 구성함으로써, 복수의 포맷 변환 서버들(151, 152, 153) 각각에 대응되는 상태 벡터를 생성한다.
노름 연산부(126)는 상태 벡터 생성부(125)에 의해 복수의 포맷 변환 서버들(151, 152, 153) 각각에 대응되는 상태 벡터가 생성되면, 복수의 포맷 변환 서버들(151, 152, 153) 각각에 대응되는 상태 벡터의 유클리드 노름(Euclidean norm)을 연산한다.
여기서, 유클리드 노름이란 벡터나 행렬의 유클리드 공간 상에서의 크기를 나타내는 L2 노름으로, 하기의 수학식 2와 같이 나타낼 수 있다.
대체 선택 처리부(127)는 복수의 포맷 변환 서버들(151, 152, 153) 중 상기 유클리드 노름이 최소로 연산된 포맷 변환 서버를 상기 작업 대상 서버로 선택한다.
이하에서는, 상태 벡터 생성부(125), 노름 연산부(126) 및 대체 선택 처리부(127)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 복수의 포맷 변환 서버들(151, 152, 153)을 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)'이라고 하고, 서버 확인부(120)에 의해, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 중 유휴상태인 포맷 변환 서버가 존재하지 않는 것으로 확인되었다고 가정하자.
그러면, 상태 벡터 생성부(125)는 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 확인한 후, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대해, 각 포맷 변환 서버의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 성분으로 갖는 3차원의 벡터를 구성함으로써, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대응되는 상태 벡터를 생성할 수 있다.
관련해서, '포맷 변환 서버 1(151)'에 대해, '포맷 변환 서버 1(151)'의 현재 전력 소모량이 '350W'이고, 현재 CPU 사용률이 '30%'이며, 현재 네트워크 트래픽 수치가 '70GB'인 것으로 확인되었다고 하는 경우, 상태 벡터 생성부(125)는 '350(W), 30(%), 70(GB)'을 성분으로 갖는 3차원의 벡터를 구성함으로써, '포맷 변환 서버 1(151)'에 대응되는 상태 벡터를 '[350 30 70]'과 같이 생성할 수 있다.
이러한 방식으로, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대응되는 상태 벡터가 '[350 30 70], [500 40 50], [800 70 100]'과 같이 생성되었다고 하는 경우, 노름 연산부(126)는 '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 각각에 대응되는 상태 벡터인 '[350 30 70], [500 40 50], [800 70 100]'의 유클리드 노름을 연산할 수 있다.
이때, '포맷 변환 서버 1(151), 포맷 변환 서버 2(152), 포맷 변환 서버 3(153)' 중 '포맷 변환 서버 1(151)'의 상기 유클리드 노름이 최소로 연산되었다고 하는 경우, 대체 선택 처리부(127)는 '포맷 변환 서버 1(151)'을 상기 작업 대상 서버로 선택할 수 있다.
이렇게, 서버 선택부(111)에 의해 상기 작업 대상 서버가 선택되면, 동기 변환 이벤트 발생부(112)는 동기(synchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 동기 변환 이벤트를 발생시킨다.
명령 전송부(113)는 동기 변환 이벤트 발생부(112)에 의해 상기 동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 문서 파일과, 상기 문서 파일의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, 상기 작업 대상 서버로 인보크(invoke) 조건을 설정할 것을 지시하는 조건 설정 명령을 전송한다.
여기서, 상기 인보크 조건은 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 포맷 변환 작업 할당 장치(110)로 피드백할 것을 인보크시키는 조건이다.
제1 문서 파일 전송부(114)는 명령 전송부(113)에 의해 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 사전 설정된 제1 시간이 경과하기 전에, 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료됨에 따라, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 클라이언트 단말(140)로 전송한다.
이하에서는, 명령 전송부(113) 및 제1 문서 파일 전송부(114)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 클라이언트 단말(140)로부터, '문서 파일 1'이 수신되면서, '문서 파일 1'에 대한 포맷 변환 요청이 수신되었다고 하고, 서버 선택부(111)에 의해, '포맷 변환 서버 1(151)'이 상기 작업 대상 서버로 선택되었다고 하며, 그 이후, 동기 변환 이벤트 발생부(112)에 의해 상기 동기 변환 이벤트가 발생되었다고 가정하자.
그러면, 명령 전송부(113)는 '포맷 변환 서버 1(151)'로 '문서 파일 1'과, '문서 파일 1'의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, '포맷 변환 서버 1(151)'로 인보크 조건을 설정할 것을 지시하는 조건 설정 명령을 전송할 수 있다.
이에 따라, '포맷 변환 서버 1(151)'에 '문서 파일 1'과 상기 작업 지시 명령이 수신됨과 동시에, 상기 조건 설정 명령이 수신되면, '포맷 변환 서버 1(151)'은 상기 작업 지시 명령에 따라, '문서 파일 1'의 포맷 변환 작업을 수행할 수 있다.
또한, '포맷 변환 서버 1(151)'은 상기 조건 설정 명령에 따라, 상기 인보크 조건을 설정하여, '포맷 변환 서버 1(151)'에서 '문서 파일 1'의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 포맷 변환 작업 할당 장치(110)로 피드백할 수 있다.
이때, 사전 설정된 제1 시간을 '5초'라고 하고, 명령 전송부(113)에 의해 '포맷 변환 서버 1(151)'로 상기 조건 설정 명령이 전송된 시점으로부터 '3초'가 지난 시점에, '포맷 변환 서버 1(151)'에서 '문서 파일 1'의 포맷 변환 작업이 완료되었다고 하는 경우, '포맷 변환 서버 1(151)'은 상기 작업 완료 메시지를 생성하여 작업 할당 장치(110)로 피드백할 수 있다.
이에 따라, 포맷 변환 작업 장치(110)에, 상기 작업 완료 메시지가 피드백되면, 제1 문서 파일 전송부(114)는 '포맷 변환 서버 1(151)'로, 포맷이 변환된 '문서 파일 1'의 전송 요청을 전송할 수 있다.
이때, '포맷 변환 서버 1(151)'에 상기 전송 요청이 수신되면, '포맷 변환 서버 1(151)'은 상기 전송 요청에 대응하여, 포맷이 변환된 '문서 파일 1'을 포맷 변환 작업 할당 장치(110)로 전송할 수 있다.
이에 따라, 포맷 변환 작업 할당 장치(110)에, 포맷이 변환된 '문서 파일 1'이 수신되면, 제1 문서 파일 전송부(114)는 포맷이 변환된 '문서 파일 1'을 클라이언트 단말(140)로 전송할 수 있다.
비동기 변환 이벤트 발생부(115)는 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 상기 제1 시간이 경과할 때까지, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되지 않는 경우, 비동기(asynchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시킨다.
비동기 변환 이벤트 발생부(115)에 의해 상기 비동기 변환 이벤트가 발생되면, 조건 제거 명령 전송부(116)는 상기 작업 대상 서버로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송한다.
작업 확인부(117)는 조건 제거 명령 전송부(116)에 의해 상기 작업 대상 서버로 상기 조건 제거 명령이 전송되면, 사전 설정된 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인한다.
이때, 본 발명의 일실시예에 따르면, 작업 확인부(117)는 상기 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인할 때마다, 상기 문서 파일의 포맷 변환 작업에 대한 작업 완료율을 추가로 확인한 후, 상기 작업 완료율에 대한 정보를 클라이언트 단말(140)로 전송할 수 있다.
제2 문서 파일 전송부(118)는 작업 확인부(117)가 상기 확인 주기 간격으로 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인함에 따라, 작업 확인부(117)에 의해, t(t는 자연수임)번째 확인 주기에서, 상기 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 클라이언트 단말(140)로 전송한다.
이하에서는, 비동기 변환 이벤트 발생부(115), 조건 제거 명령 전송부(116), 작업 확인부(117) 및 제2 문서 파일 전송부(118)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 상기 제1 시간을 '5초'라고 하고, 명령 전송부(113)에 의해, '포맷 변환 서버 1(151)'로 '문서 파일 1'과, '문서 파일 1'의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령이 전송됨과 동시에, '포맷 변환 서버 1(151)'로 인보크 조건을 설정할 것을 지시하는 조건 설정 명령이 전송되었다고 가정하자.
이때, 명령 전송부(113)에 의해 '포맷 변환 서버 1(151)'로 상기 조건 설정 명령이 전송된 이후, '5초'가 경과할 때까지, '포맷 변환 서버 1(151)'로부터 상기 작업 완료 메시지가 피드백되지 않았다고 하는 경우, 비동기 변환 이벤트 발생부(115)는 비동기 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시킬 수 있다.
그러면, 조건 제거 명령 전송부(116)는 '포맷 변환 서버 1(151)'로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송할 수 있다.
그러면, '포맷 변환 서버 1(151)'은 상기 조건 제거 명령에 기초하여 '포맷 변환 서버 1(151)'에 설정되어 있는 상기 인보크 조건을 제거할 수 있다. 이로 인해, '포맷 변환 서버 1(151)'은 '문서 파일 1'의 포맷 변환 작업이 완료되더라도 포맷 변환 작업 할당 장치(110)로 작업 완료 메시지를 피드백하지 않게 된다.
그 이후, 작업 확인부(117)는 사전 설정된 확인 주기 간격으로 '포맷 변환 서버 1(151)'에 접속하여, '문서 파일 1'의 포맷 변환 작업이 완료되었는지 여부를 확인할 수 있고, 이와 동시에, '문서 파일 1'의 포맷 변환 작업에 대한 작업 완료율을 추가로 확인할 수 있다. 관련해서, 상기 사전 설정된 확인 주기를 '1초'라고 하는 경우, 작업 확인부(117)는 '1초' 간격으로 '포맷 변환 서버 1(151)'에 접속하여, '문서 파일 1'의 포맷 변환 작업이 완료되었는지 여부를 확인할 수 있고, 이와 동시에, '문서 파일 1'의 포맷 변환 작업에 대한 작업 완료율을 추가로 확인할 수 있다.
그 결과, 특정 주기에서 상기 작업 완료율이 '70%'와 같이 확인되었다고 하는 경우, 작업 확인부(117)는 상기 작업 완료율인 '70%'에 대한 정보를 클라이언트 단말(140)로 전송할 수 있다.
이렇게, 작업 확인부(117)가 '1초' 간격으로 '포맷 변환 서버 1(151)'에 접속하여, '문서 파일 1'의 포맷 변환 작업이 완료되었는지 여부를 확인한 결과, '2'번째 확인 주기에서, 상기 '문서 파일 1'의 포맷 변환 작업이 완료된 것으로 확인되었다고 하는 경우, 제2 문서 파일 전송부(118)는 '2'번째 확인 주기에서, '포맷 변환 서버 1(151)'로, 포맷이 변환된 '문서 파일 1'의 전송 요청을 전송할 수 있다.
그 이후, 상기 전송 요청에 대응하여, '포맷 변환 서버 1(151)'로부터 포맷이 변환된 '문서 파일 1'이 포맷 변환 작업 할당 장치(110)에 수신되면, 제2 문서 파일 전송부(118)는 포맷이 변환된 '문서 파일 1'을 클라이언트 단말(140)로 전송할 수 있다.
본 발명의 일실시예에 따르면, 명령 전송부(113)는 상기 작업 대상 서버로 문서 파일과 함께 상기 문서 파일의 포맷을 변환할 것을 지시하는 작업 지시 명령을 전송할 때, 상기 문서 파일이 노출되는 것을 최소화하기 위해, 상기 문서 파일을 암호화하여 상기 작업 대상 서버로 전송하는 구성을 더 포함할 수 있다.
이와 관련해서, 명령 전송부(113)는 행렬 저장부(128), 데이터 행렬 생성부(129), 랜덤 행렬 생성부(130), 암호화 행렬 생성부(131) 및 암호화 전송부(132)를 포함할 수 있다.
행렬 저장부(128)에는 의사 난수(Pseudo-Random Number)를 생성하기 위한 사전 설정된 시드 값(seed)과, n x k(n과 k는 서로 다른 2 이상의 자연수임) 크기의 공개키 행렬이 저장되어 있다.
여기서, 상기 공개키 행렬은, 상기 시드 값을 기초로 생성되는 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 의사 난수 행렬과, 복수의 포맷 변환 서버들(151, 152, 153) 각각에 사전 발급되어 저장되어 있는 n x k 크기의 개인키 행렬이 서로 곱해져서 생성된 행렬이다.
예컨대, n을 '3', k를 '4'라고 하는 경우, 그러면, 행렬 저장부(128)에는 의사 난수를 생성하기 위한 사전 설정된 시드값과, 하기의 수학식 3에 따라 생성된 '3 x 4' 크기의 공개키 행렬인 '행렬 O'가 저장되어 있을 수 있다.
관련해서, '행렬 O'는 상기 시드 값을 기초로 생성되는 '9'개의 의사 난수들을 성분으로 갖는 '3 x 3' 크기의 상기 의사 난수 행렬인 '행렬 N'과, 복수의 포맷 변환 서버들(151, 152, 153) 각각에 사전 발급되어 저장되어 있는 '3 x 4' 크기의 개인키 행렬인 '행렬 P'가 서로 곱해져서 생성된 행렬로서, 하기의 수학식 3에 따라 생성될 수 있다.
데이터 행렬 생성부(129)는 동기 변환 이벤트 발생부(112)에 의해 상기 동기 변환 이벤트가 발생되면, 상기 문서 파일을 구성하는 데이터를 k2개의 부분 데이터들로 분할한 후, 상기 k2개의 부분 데이터들을 성분으로 갖는 k x k 크기의 데이터 행렬을 생성한다.
랜덤 행렬 생성부(130)는 데이터 행렬 생성부(129)에 의해 상기 데이터 행렬이 생성되면, 행렬 저장부(128)에 저장되어 있는 상기 시드 값을 기초로, 상기 n2개의 의사 난수들을 생성한 후, 상기 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 상기 의사 난수 행렬을 생성하고, 랜덤한 성분들로 구성된 k x n 크기의 랜덤 행렬을 생성한다.
암호화 행렬 생성부(131)는 랜덤 행렬 생성부(130)에 의해 상기 랜덤 행렬이 생성되면, 상기 랜덤 행렬과 상기 의사 난수 행렬을 곱함으로써, k x n 크기의 제1 암호화 행렬을 생성하고, 상기 랜덤 행렬과 행렬 저장부(128)에 저장되어 있는 상기 공개키 행렬을 서로 곱한 후 상기 데이터 행렬을 더함으로써, k x k 크기의 제2 암호화 행렬을 생성한다.
암호화 전송부(132)는 암호화 행렬 생성부(131)에 의해 상기 제1 암호화 행렬과 상기 제2 암호화 행렬이 생성되면, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을, 상기 문서 파일의 암호화 데이터로 지정하여 상기 작업 대상 서버로 전송함과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령을 전송한다.
이하에서는, 데이터 행렬 생성부(129), 랜덤 행렬 생성부(130), 암호화 행렬 생성부(131) 및 암호화 전송부(132)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, n을 '3', k를 '4'라고 하고, 클라이언트 단말(140)로부터, '문서 파일 1'이 수신되면서, '문서 파일 1'에 대한 포맷 변환 요청이 수신되었다고 하며, 서버 선택부(111)에 의해 '포맷 변환 서버 1(151)'이 상기 작업 대상 서버로 선택되었다고 하고, 그 이후, 동기 변환 이벤트 발생부(112)에 의해 상기 동기 변환 이벤트가 발생되었다고 가정하자.
그러면, 데이터 행렬 생성부(129)는 '문서 파일 1'을 구성하는 데이터를 '16개'의 부분 데이터들로 분할한 후, '16개'의 부분 데이터들을 성분으로 갖는 '4 x 4' 크기의 데이터 행렬인 '행렬 D'를 생성할 수 있다.
그 이후, 랜덤 행렬 생성부(130)는 행렬 저장부(128)에 저장되어 있는 상기 시드 값을 기초로, 상기 '9개'의 의사 난수들을 생성한 후, 상기 '9개'의 의사 난수들을 성분으로 갖는 '3 x 3' 크기의 상기 의사 난수 행렬인 '행렬 N'을 생성할 수 있고, 랜덤한 성분들로 구성된 '4 x 3' 크기의 랜덤 행렬을 생성할 수 있다.
이때, 상기 랜덤 행렬을 '행렬 R'이라고 하는 경우, 암호화 행렬 생성부(131)는 하기의 수학식 4에 따라, 상기 랜덤 행렬인 '행렬 R'과 상기 의사 난수 행렬인 '행렬 N'을 곱함으로써, '4 x 3' 크기의 제1 암호화 행렬을 '행렬 C1'과 같이 생성할 수 있다.
또한, 암호화 행렬 생성부(131)는 하기의 수학식 5에 따라, '행렬 R'과 행렬 저장부(128)에 저장되어 있는 상기 공개키 행렬인 '행렬 O'를 서로 곱한 후 상기 데이터 행렬인 '행렬 D'를 더함으로써, '4 x 4' 크기의 제2 암호화 행렬을 '행렬 C2'와 같이 생성할 수 있다.
이렇게, 암호화 행렬 생성부(131)에 의해, 상기 제1 암호화 행렬인 '행렬 C1'과 상기 제2 암호화 행렬인 '행렬 C2'가 생성되면, 암호화 전송부(132)는 '행렬 C1'과 '행렬 C2'를 '문서 파일 1'의 암호화 데이터로 지정하여 '포맷 변환 서버 1(151)'로 전송함과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령을 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 작업 대상 서버는 메모리 상에 상기 개인키 행렬을 사전 저장하고 있고, 포맷 변환 작업 할당 장치(110)로부터, 상기 문서 파일의 암호화 데이터가 수신됨과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령이 수신되면, 상기 문서 파일의 암호화 데이터로부터, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을 확인한 후, 상기 제1 암호화 행렬과 상기 개인키 행렬을 곱함으로써, k x k 크기의 연산 행렬을 생성하고, 상기 제2 암호화 행렬에서 상기 연산 행렬을 뺌으로써, 상기 데이터 행렬을 복원하며, 상기 데이터 행렬로부터, 상기 데이터 행렬의 성분들로 포함되어 있는 상기 k2개의 부분 데이터들을 추출하고, 상기 k2개의 부분 데이터들을 조합하여 상기 문서 파일을 구성하는 데이터를 복원한 후, 상기 작업 지시 명령에 따라, 상기 문서 파일에 대한 포맷 변환 작업을 수행할 수 있다.
예컨대, 전술한 예와 같이, n을 '3', k를 '4'라고 하고, 상기 작업 대상 서버를 '포맷 변환 서버 1(151)'이라고 하며, '3 x 4' 크기의 개인키 행렬을 '행렬 P'라고 하는 경우, '포맷 변환 서버 1(151)'의 메모리 상에는 상기 개인키 행렬인 '행렬 P'가 저장되어 있을 수 있다.
또한, 전술한 예와 같이, 암호화 전송부(132)가 상기 제1 암호화 행렬인 '행렬 C1'과 상기 제2 암호화 행렬인 '행렬 C2'를, '문서 파일 1'의 암호화 데이터로 지정하여 '포맷 변환 서버 1(151)'로 전송함과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령을 전송함에 따라, '포맷 변환 서버 1(151)'에 '문서 파일 1'의 암호화 데이터가 수신됨과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령이 수신되었다고 가정하자.
그러면, '포맷 변환 서버 1(151)'은 '문서 파일 1'의 암호화 데이터로부터 상기 제1 암호화 행렬인 '행렬 C1'과 상기 제2 암호화 행렬인 '행렬 C2'를 확인할 수 있다
그러고 나서, '포맷 변환 서버 1(151)'은 하기의 수학식 6에 따라, '행렬 C1'과 '행렬 P'를 곱함으로써, '4 x 4' 크기의 연산 행렬을 생성하고, '행렬 C2'에서 상기 연산 행렬을 뺌으로써, '행렬 D'를 복원할 수 있다.
여기서, 상기 수학식 6의 연산 결과인 '행렬 D'는 하기의 수학식 7과 같은 연산 과정에 의해서 산출될 수 있다.
이때, 전술한 예에 따르면, '행렬 D'는 '16개'의 부분 데이터들을 성분으로 갖는 '4 x 4' 크기의 데이터 행렬이므로, '포맷 변환 서버 1(151)'은 '행렬 D'가 복원되면, '행렬 D'로부터, '행렬 D'의 성분들로 포함되어 있는 '16개'의 부분 데이터들을 추출할 수 있다.
이때, 전술한 예에 따르면, '16개'의 부분 데이터들은 데이터 행렬 생성부(129)에 의해, '문서 파일 1'을 구성하는 데이터가 분할되어 생성된 분할 데이터들이므로, '포맷 변환 서버 1(151)'은 '16개'의 부분 데이터들을 조합하여 '문서 파일 1'을 구성하는 데이터를 복원할 수 있고, 그 이후, 상기 작업 지시 명령에 따라, '문서 파일 1'에 대한 포맷 변환 작업을 수행할 수 있다.
도 2는 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 어느 하나의 포맷 변환 서버를 상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택한다.
단계(S220)에서는 상기 작업 대상 서버가 선택되면, 동기 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 동기 변환 이벤트를 발생시킨다.
단계(S230)에서는 상기 동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 문서 파일과, 상기 문서 파일의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, 상기 작업 대상 서버로 인보크 조건(상기 인보크 조건은 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 상기 포맷 변환 작업 할당 장치로 피드백할 것을 인보크시키는 조건임)을 설정할 것을 지시하는 조건 설정 명령을 전송한다.
단계(S240)에서는 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 사전 설정된 제1 시간이 경과하기 전에, 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료됨에 따라, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송한다.
단계(S250)에서는 상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 상기 제1 시간이 경과할 때까지, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되지 않는 경우, 비동기 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시킨다.
단계(S260)에서는 상기 비동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송한다.
단계(S270)에서는 상기 작업 대상 서버로 상기 조건 제거 명령이 전송되면, 사전 설정된 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인한다.
단계(S280)에서는 단계(S270)에 의해, t(t는 자연수임)번째 확인 주기에서, 상기 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송한다.
이때, 본 발명의 일실시예에 따르면, 단계(S270)에서는 상기 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인할 때마다, 상기 문서 파일의 포맷 변환 작업에 대한 작업 완료율을 추가로 확인한 후, 상기 작업 완료율에 대한 정보를 상기 클라이언트 단말로 전송할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S210)에서는 상기 복수의 포맷 변환 서버들 각각에 대응되는 것으로 사전 설정된 서로 다른 작업 할당 기준 정보(상기 작업 할당 기준 정보는 상기 복수의 포맷 변환 서버들 중 상기 작업 대상 서버를 선택하기 위한 기준치를 의미하는 정보로, 상기 작업 할당 기준 정보에는, 각 포맷 변환 서버에 대응되는 것으로 사전 설정된 기준 파일 크기 값과 기준 개체 수가 쌍으로 포함되어 있음)가 저장되어 있는 정보 저장부를 유지하는 단계, 상기 클라이언트 단말로부터, 상기 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 상기 복수의 포맷 변환 서버들과 접속하여, 상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버가 존재하는지 여부를 확인하는 단계, 상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버로, 적어도 하나의 제1 포맷 변환 서버가 존재하는 것으로 확인되면, 상기 문서 파일의 파일 크기 값을 확인하고, 상기 문서 파일에 따른 문서 내에 삽입되어 있는 개체의 개수를 카운트한 후, 상기 문서 파일의 파일 크기 값과 상기 개체의 개수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 문서 파일에 대응되는 특징 벡터를 생성하는 단계, 상기 정보 저장부를 참조하여, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 기준 파일 크기 값과 기준 개체 수를 확인한 후, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대해, 각 포맷 변환 서버에 대응되는 기준 파일 크기 값과 기준 개체 수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대한 특징 벡터를 생성하는 단계, 상기 문서 파일에 대응되는 특징 벡터와 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 특징 벡터 간의 유클리드 거리를 연산하는 단계 및 상기 적어도 하나의 제1 포맷 변환 서버 중 상기 유클리드 거리가 최소로 연산된 포맷 변환 서버를, 상기 작업 대상 서버로 선택하는 단계를 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S210)에서는 상기 유휴상태인 포맷 변환 서버가 존재하는지 여부를 확인하는 단계에 의해, 상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버가 존재하지 않는 것으로 확인되는 경우, 상기 복수의 포맷 변환 서버들 각각의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 확인한 후, 상기 복수의 포맷 변환 서버들 각각에 대해, 각 포맷 변환 서버의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 성분으로 갖는 3차원의 벡터를 구성함으로써, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터를 생성하는 단계, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터가 생성되면, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터의 유클리드 노름을 연산하는 단계 및 상기 복수의 포맷 변환 서버들 중 상기 유클리드 노름이 최소로 연산된 포맷 변환 서버를 상기 작업 대상 서버로 선택하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S280)에서는 의사 난수를 생성하기 위한 사전 설정된 시드 값과, n x k(n과 k는 서로 다른 2 이상의 자연수임) 크기의 공개키 행렬(상기 공개키 행렬은, 상기 시드 값을 기초로 생성되는 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 의사 난수 행렬과, 상기 복수의 포맷 변환 서버들 각각에 사전 발급되어 저장되어 있는 n x k 크기의 개인키 행렬이 서로 곱해져서 생성된 행렬임)이 저장되어 있는 행렬 저장부를 유지하는 단계, 상기 동기 변환 이벤트가 발생되면, 상기 문서 파일을 구성하는 데이터를 k2개의 부분 데이터들로 분할한 후, 상기 k2개의 부분 데이터들을 성분으로 갖는 k x k 크기의 데이터 행렬을 생성하는 단계, 상기 데이터 행렬이 생성되면, 상기 행렬 저장부에 저장되어 있는 상기 시드 값을 기초로, 상기 n2개의 의사 난수들을 생성한 후, 상기 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 상기 의사 난수 행렬을 생성하고, 랜덤한 성분들로 구성된 k x n 크기의 랜덤 행렬을 생성하는 단계, 상기 랜덤 행렬이 생성되면, 상기 랜덤 행렬과 상기 의사 난수 행렬을 곱함으로써, k x n 크기의 제1 암호화 행렬을 생성하고, 상기 랜덤 행렬과 상기 행렬 저장부에 저장되어 있는 상기 공개키 행렬을 서로 곱한 후 상기 데이터 행렬을 더함으로써, k x k 크기의 제2 암호화 행렬을 생성하는 단계 및 상기 제1 암호화 행렬과 상기 제2 암호화 행렬이 생성되면, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을, 상기 문서 파일의 암호화 데이터로 지정하여 상기 작업 대상 서버로 전송함과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령을 전송하는 단계를 포함할 수 있다.
이때, 상기 작업 대상 서버는 메모리 상에 상기 개인키 행렬을 사전 저장하고 있고, 상기 포맷 변환 작업 할당 장치로부터, 상기 문서 파일의 암호화 데이터가 수신됨과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령이 수신되면, 상기 문서 파일의 암호화 데이터로부터, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을 확인한 후, 상기 제1 암호화 행렬과 상기 개인키 행렬을 곱함으로써, k x k 크기의 연산 행렬을 생성하고, 상기 제2 암호화 행렬에서 상기 연산 행렬을 뺌으로써, 상기 데이터 행렬을 복원하며, 상기 데이터 행렬로부터, 상기 데이터 행렬의 성분들로 포함되어 있는 상기 k2개의 부분 데이터들을 추출하고, 상기 k2개의 부분 데이터들을 조합하여 상기 문서 파일을 구성하는 데이터를 복원한 후, 상기 작업 지시 명령에 따라, 상기 문서 파일에 대한 포맷 변환 작업을 수행할 수 있다.
이상, 도 2를 참조하여 본 발명 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법은 도 1을 이용하여 설명한 포맷 변환 작업 할당 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치
111: 서버 선택부 112: 동기 변환 이벤트 발생부
113: 명령 전송부 114: 제1 문서 파일 전송부
115: 비동기 변환 이벤트 발생부 116: 조건 제거 명령 전송부
117: 작업 확인부 118: 제2 문서 파일 전송부
119: 정보 저장부 120: 서버 확인부
121: 파일 특징 벡터 생성부 122: 서버 특징 벡터 생성부
123: 거리 연산부 124: 선택 처리부
125: 상태 벡터 생성부 126: 노름 연산부
127: 대체 선택부 128: 행렬 저장부
129: 데이터 행렬 생성부 130: 랜덤 행렬 생성부
131: 암호화 행렬 생성부 132: 암호화 전송부
140: 클라이언트 단말
151, 152, 153: 복수의 포맷 변환 서버들
111: 서버 선택부 112: 동기 변환 이벤트 발생부
113: 명령 전송부 114: 제1 문서 파일 전송부
115: 비동기 변환 이벤트 발생부 116: 조건 제거 명령 전송부
117: 작업 확인부 118: 제2 문서 파일 전송부
119: 정보 저장부 120: 서버 확인부
121: 파일 특징 벡터 생성부 122: 서버 특징 벡터 생성부
123: 거리 연산부 124: 선택 처리부
125: 상태 벡터 생성부 126: 노름 연산부
127: 대체 선택부 128: 행렬 저장부
129: 데이터 행렬 생성부 130: 랜덤 행렬 생성부
131: 암호화 행렬 생성부 132: 암호화 전송부
140: 클라이언트 단말
151, 152, 153: 복수의 포맷 변환 서버들
Claims (12)
- 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치에 있어서,
클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 어느 하나의 포맷 변환 서버를 상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택하는 서버 선택부;
상기 작업 대상 서버가 선택되면, 동기(synchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 동기 변환 이벤트를 발생시키는 동기 변환 이벤트 발생부;
상기 동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 문서 파일과, 상기 문서 파일의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, 상기 작업 대상 서버로 인보크(invoke) 조건 - 상기 인보크 조건은 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 상기 포맷 변환 작업 할당 장치로 피드백할 것을 인보크시키는 조건임 - 을 설정할 것을 지시하는 조건 설정 명령을 전송하는 명령 전송부;
상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 사전 설정된 제1 시간이 경과하기 전에, 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료됨에 따라, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 제1 문서 파일 전송부;
상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 상기 제1 시간이 경과할 때까지, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되지 않는 경우, 비동기(asynchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시키는 비동기 변환 이벤트 발생부;
상기 비동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송하는 조건 제거 명령 전송부;
상기 작업 대상 서버로 상기 조건 제거 명령이 전송되면, 사전 설정된 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 작업 확인부; 및
상기 작업 확인부에 의해, t(t는 자연수임)번째 확인 주기에서, 상기 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 제2 문서 파일 전송부
를 포함하는 포맷 변환 작업 할당 장치. - 제1항에 있어서,
상기 작업 확인부는
상기 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인할 때마다, 상기 문서 파일의 포맷 변환 작업에 대한 작업 완료율을 추가로 확인한 후, 상기 작업 완료율에 대한 정보를 상기 클라이언트 단말로 전송하는 것을 특징으로 하는 포맷 변환 작업 할당 장치. - 제1항에 있어서,
상기 서버 선택부는
상기 복수의 포맷 변환 서버들 각각에 대응되는 것으로 사전 설정된 서로 다른 작업 할당 기준 정보 - 상기 작업 할당 기준 정보는 상기 복수의 포맷 변환 서버들 중 상기 작업 대상 서버를 선택하기 위한 기준치를 의미하는 정보로, 상기 작업 할당 기준 정보에는, 각 포맷 변환 서버에 대응되는 것으로 사전 설정된 기준 파일 크기 값과 기준 개체 수가 쌍으로 포함되어 있음 - 가 저장되어 있는 정보 저장부;
상기 클라이언트 단말로부터, 상기 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 상기 복수의 포맷 변환 서버들과 접속하여, 상기 복수의 포맷 변환 서버들 중 유휴(idle)상태인 포맷 변환 서버가 존재하는지 여부를 확인하는 서버 확인부;
상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버로, 적어도 하나의 제1 포맷 변환 서버가 존재하는 것으로 확인되면, 상기 문서 파일의 파일 크기 값을 확인하고, 상기 문서 파일에 따른 문서 내에 삽입되어 있는 개체의 개수를 카운트한 후, 상기 문서 파일의 파일 크기 값과 상기 개체의 개수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 문서 파일에 대응되는 특징 벡터를 생성하는 파일 특징 벡터 생성부;
상기 정보 저장부를 참조하여, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 기준 파일 크기 값과 기준 개체 수를 확인한 후, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대해, 각 포맷 변환 서버에 대응되는 기준 파일 크기 값과 기준 개체 수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대한 특징 벡터를 생성하는 서버 특징 벡터 생성부;
상기 문서 파일에 대응되는 특징 벡터와 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 특징 벡터 간의 유클리드 거리(Euclidean distance)를 연산하는 거리 연산부; 및
상기 적어도 하나의 제1 포맷 변환 서버 중 상기 유클리드 거리가 최소로 연산된 포맷 변환 서버를, 상기 작업 대상 서버로 선택하는 선택 처리부
를 포함하는 포맷 변환 작업 할당 장치. - 제3항에 있어서,
상기 서버 선택부는
상기 서버 확인부에 의해, 상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버가 존재하지 않는 것으로 확인되는 경우, 상기 복수의 포맷 변환 서버들 각각의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 확인한 후, 상기 복수의 포맷 변환 서버들 각각에 대해, 각 포맷 변환 서버의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 성분으로 갖는 3차원의 벡터를 구성함으로써, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터를 생성하는 상태 벡터 생성부;
상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터가 생성되면, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터의 유클리드 노름(Euclidean norm)을 연산하는 노름 연산부; 및
상기 복수의 포맷 변환 서버들 중 상기 유클리드 노름이 최소로 연산된 포맷 변환 서버를 상기 작업 대상 서버로 선택하는 대체 선택 처리부
를 더 포함하는 포맷 변환 작업 할당 장치. - 제1항에 있어서,
상기 명령 전송부는
의사 난수(Pseudo-Random Number)를 생성하기 위한 사전 설정된 시드 값(seed)과, n x k(n과 k는 서로 다른 2 이상의 자연수임) 크기의 공개키 행렬 - 상기 공개키 행렬은, 상기 시드 값을 기초로 생성되는 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 의사 난수 행렬과, 상기 복수의 포맷 변환 서버들 각각에 사전 발급되어 저장되어 있는 n x k 크기의 개인키 행렬이 서로 곱해져서 생성된 행렬임 - 이 저장되어 있는 행렬 저장부;
상기 동기 변환 이벤트가 발생되면, 상기 문서 파일을 구성하는 데이터를 k2개의 부분 데이터들로 분할한 후, 상기 k2개의 부분 데이터들을 성분으로 갖는 k x k 크기의 데이터 행렬을 생성하는 데이터 행렬 생성부;
상기 데이터 행렬이 생성되면, 상기 행렬 저장부에 저장되어 있는 상기 시드 값을 기초로, 상기 n2개의 의사 난수들을 생성한 후, 상기 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 상기 의사 난수 행렬을 생성하고, 랜덤한 성분들로 구성된 k x n 크기의 랜덤 행렬을 생성하는 랜덤 행렬 생성부;
상기 랜덤 행렬이 생성되면, 상기 랜덤 행렬과 상기 의사 난수 행렬을 곱함으로써, k x n 크기의 제1 암호화 행렬을 생성하고, 상기 랜덤 행렬과 상기 행렬 저장부에 저장되어 있는 상기 공개키 행렬을 서로 곱한 후 상기 데이터 행렬을 더함으로써, k x k 크기의 제2 암호화 행렬을 생성하는 암호화 행렬 생성부; 및
상기 제1 암호화 행렬과 상기 제2 암호화 행렬이 생성되면, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을, 상기 문서 파일의 암호화 데이터로 지정하여 상기 작업 대상 서버로 전송함과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령을 전송하는 암호화 전송부
를 포함하고,
상기 작업 대상 서버는
메모리 상에 상기 개인키 행렬을 사전 저장하고 있고, 상기 포맷 변환 작업 할당 장치로부터, 상기 문서 파일의 암호화 데이터가 수신됨과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령이 수신되면, 상기 문서 파일의 암호화 데이터로부터, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을 확인한 후, 상기 제1 암호화 행렬과 상기 개인키 행렬을 곱함으로써, k x k 크기의 연산 행렬을 생성하고, 상기 제2 암호화 행렬에서 상기 연산 행렬을 뺌으로써, 상기 데이터 행렬을 복원하며, 상기 데이터 행렬로부터, 상기 데이터 행렬의 성분들로 포함되어 있는 상기 k2개의 부분 데이터들을 추출하고, 상기 k2개의 부분 데이터들을 조합하여 상기 문서 파일을 구성하는 데이터를 복원한 후, 상기 작업 지시 명령에 따라, 상기 문서 파일에 대한 포맷 변환 작업을 수행하는 것을 특징으로 하는 포맷 변환 작업 할당 장치. - 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치의 동작 방법에 있어서,
클라이언트 단말로부터, 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 사전 지정된 복수의 포맷 변환 서버들 중 어느 하나의 포맷 변환 서버를 상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택하는 단계;
상기 작업 대상 서버가 선택되면, 동기(synchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 동기 변환 이벤트를 발생시키는 단계;
상기 동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 문서 파일과, 상기 문서 파일의 포맷 변환 작업을 수행할 것을 지시하는 작업 지시 명령을 전송함과 동시에, 상기 작업 대상 서버로 인보크(invoke) 조건 - 상기 인보크 조건은 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료되면, 작업 완료 메시지를 생성하여 상기 포맷 변환 작업 할당 장치로 피드백할 것을 인보크시키는 조건임 - 을 설정할 것을 지시하는 조건 설정 명령을 전송하는 단계;
상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 사전 설정된 제1 시간이 경과하기 전에, 상기 작업 대상 서버에서 상기 문서 파일의 포맷 변환 작업이 완료됨에 따라, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 단계;
상기 작업 대상 서버로 상기 조건 설정 명령이 전송된 시점으로부터 상기 제1 시간이 경과할 때까지, 상기 작업 대상 서버로부터 상기 작업 완료 메시지가 피드백되지 않는 경우, 비동기(asynchronous) 방식으로 상기 문서 파일의 포맷 변환 작업을 수행하기 위한 비동기 변환 이벤트를 발생시키는 단계;
상기 비동기 변환 이벤트가 발생되면, 상기 작업 대상 서버로, 상기 인보크 조건을 제거할 것을 지시하는 조건 제거 명령을 전송하는 단계;
상기 작업 대상 서버로 상기 조건 제거 명령이 전송되면, 사전 설정된 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 단계; 및
상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 단계에 의해, t(t는 자연수임)번째 확인 주기에서, 상기 문서 파일의 포맷 변환 작업이 완료된 것으로 확인되면, 상기 작업 대상 서버로, 포맷이 변환된 상기 문서 파일의 전송 요청을 전송하고, 상기 작업 대상 서버로부터, 포맷이 변환된 상기 문서 파일이 수신되면, 포맷이 변환된 상기 문서 파일을 상기 클라이언트 단말로 전송하는 단계
를 포함하는 포맷 변환 작업 할당 장치의 동작 방법. - 제6항에 있어서,
상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인하는 단계는
상기 확인 주기 간격으로 상기 작업 대상 서버에 접속하여, 상기 문서 파일의 포맷 변환 작업이 완료되었는지 여부를 확인할 때마다, 상기 문서 파일의 포맷 변환 작업에 대한 작업 완료율을 추가로 확인한 후, 상기 작업 완료율에 대한 정보를 상기 클라이언트 단말로 전송하는 것을 특징으로 하는 포맷 변환 작업 할당 장치의 동작 방법. - 제6항에 있어서,
상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택하는 단계는
상기 복수의 포맷 변환 서버들 각각에 대응되는 것으로 사전 설정된 서로 다른 작업 할당 기준 정보 - 상기 작업 할당 기준 정보는 상기 복수의 포맷 변환 서버들 중 상기 작업 대상 서버를 선택하기 위한 기준치를 의미하는 정보로, 상기 작업 할당 기준 정보에는, 각 포맷 변환 서버에 대응되는 것으로 사전 설정된 기준 파일 크기 값과 기준 개체 수가 쌍으로 포함되어 있음 - 가 저장되어 있는 정보 저장부를 유지하는 단계;
상기 클라이언트 단말로부터, 상기 문서 파일이 수신되면서, 상기 문서 파일에 대한 포맷 변환 요청이 수신되면, 상기 복수의 포맷 변환 서버들과 접속하여, 상기 복수의 포맷 변환 서버들 중 유휴(idle)상태인 포맷 변환 서버가 존재하는지 여부를 확인하는 단계;
상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버로, 적어도 하나의 제1 포맷 변환 서버가 존재하는 것으로 확인되면, 상기 문서 파일의 파일 크기 값을 확인하고, 상기 문서 파일에 따른 문서 내에 삽입되어 있는 개체의 개수를 카운트한 후, 상기 문서 파일의 파일 크기 값과 상기 개체의 개수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 문서 파일에 대응되는 특징 벡터를 생성하는 단계;
상기 정보 저장부를 참조하여, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 기준 파일 크기 값과 기준 개체 수를 확인한 후, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대해, 각 포맷 변환 서버에 대응되는 기준 파일 크기 값과 기준 개체 수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대한 특징 벡터를 생성하는 단계;
상기 문서 파일에 대응되는 특징 벡터와 상기 적어도 하나의 제1 포맷 변환 서버 각각에 대응되는 특징 벡터 간의 유클리드 거리(Euclidean distance)를 연산하는 단계; 및
상기 적어도 하나의 제1 포맷 변환 서버 중 상기 유클리드 거리가 최소로 연산된 포맷 변환 서버를, 상기 작업 대상 서버로 선택하는 단계
를 포함하는 포맷 변환 작업 할당 장치의 동작 방법. - 제8항에 있어서,
상기 문서 파일의 포맷 변환 작업을 수행할 작업 대상 서버로 선택하는 단계는
상기 유휴상태인 포맷 변환 서버가 존재하는지 여부를 확인하는 단계에 의해, 상기 복수의 포맷 변환 서버들 중 유휴상태인 포맷 변환 서버가 존재하지 않는 것으로 확인되는 경우, 상기 복수의 포맷 변환 서버들 각각의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 확인한 후, 상기 복수의 포맷 변환 서버들 각각에 대해, 각 포맷 변환 서버의 현재 전력 소모량, 현재 CPU 사용률 및 현재 네트워크 트래픽 수치를 성분으로 갖는 3차원의 벡터를 구성함으로써, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터를 생성하는 단계;
상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터가 생성되면, 상기 복수의 포맷 변환 서버들 각각에 대응되는 상태 벡터의 유클리드 노름(Euclidean norm)을 연산하는 단계; 및
상기 복수의 포맷 변환 서버들 중 상기 유클리드 노름이 최소로 연산된 포맷 변환 서버를 상기 작업 대상 서버로 선택하는 단계
를 더 포함하는 포맷 변환 작업 할당 장치의 동작 방법. - 제6항에 있어서,
상기 조건 설정 명령을 전송하는 단계는
의사 난수(Pseudo-Random Number)를 생성하기 위한 사전 설정된 시드 값(seed)과, n x k(n과 k는 서로 다른 2 이상의 자연수임) 크기의 공개키 행렬 - 상기 공개키 행렬은, 상기 시드 값을 기초로 생성되는 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 의사 난수 행렬과, 상기 복수의 포맷 변환 서버들 각각에 사전 발급되어 저장되어 있는 n x k 크기의 개인키 행렬이 서로 곱해져서 생성된 행렬임 - 이 저장되어 있는 행렬 저장부를 유지하는 단계;
상기 동기 변환 이벤트가 발생되면, 상기 문서 파일을 구성하는 데이터를 k2개의 부분 데이터들로 분할한 후, 상기 k2개의 부분 데이터들을 성분으로 갖는 k x k 크기의 데이터 행렬을 생성하는 단계;
상기 데이터 행렬이 생성되면, 상기 행렬 저장부에 저장되어 있는 상기 시드 값을 기초로, 상기 n2개의 의사 난수들을 생성한 후, 상기 n2개의 의사 난수들을 성분으로 갖는 n x n 크기의 상기 의사 난수 행렬을 생성하고, 랜덤한 성분들로 구성된 k x n 크기의 랜덤 행렬을 생성하는 단계;
상기 랜덤 행렬이 생성되면, 상기 랜덤 행렬과 상기 의사 난수 행렬을 곱함으로써, k x n 크기의 제1 암호화 행렬을 생성하고, 상기 랜덤 행렬과 상기 행렬 저장부에 저장되어 있는 상기 공개키 행렬을 서로 곱한 후 상기 데이터 행렬을 더함으로써, k x k 크기의 제2 암호화 행렬을 생성하는 단계; 및
상기 제1 암호화 행렬과 상기 제2 암호화 행렬이 생성되면, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을, 상기 문서 파일의 암호화 데이터로 지정하여 상기 작업 대상 서버로 전송함과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령을 전송하는 단계
를 포함하고,
상기 작업 대상 서버는
메모리 상에 상기 개인키 행렬을 사전 저장하고 있고, 상기 포맷 변환 작업 할당 장치로부터, 상기 문서 파일의 암호화 데이터가 수신됨과 동시에, 상기 작업 지시 명령과 상기 조건 설정 명령이 수신되면, 상기 문서 파일의 암호화 데이터로부터, 상기 제1 암호화 행렬과 상기 제2 암호화 행렬을 확인한 후, 상기 제1 암호화 행렬과 상기 개인키 행렬을 곱함으로써, k x k 크기의 연산 행렬을 생성하고, 상기 제2 암호화 행렬에서 상기 연산 행렬을 뺌으로써, 상기 데이터 행렬을 복원하며, 상기 데이터 행렬로부터, 상기 데이터 행렬의 성분들로 포함되어 있는 상기 k2개의 부분 데이터들을 추출하고, 상기 k2개의 부분 데이터들을 조합하여 상기 문서 파일을 구성하는 데이터를 복원한 후, 상기 작업 지시 명령에 따라, 상기 문서 파일에 대한 포맷 변환 작업을 수행하는 것을 특징으로 하는 포맷 변환 작업 할당 장치의 동작 방법. - 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
- 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210088364A KR102500742B1 (ko) | 2021-07-06 | 2021-07-06 | 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210088364A KR102500742B1 (ko) | 2021-07-06 | 2021-07-06 | 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230007705A true KR20230007705A (ko) | 2023-01-13 |
KR102500742B1 KR102500742B1 (ko) | 2023-02-16 |
Family
ID=84900145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210088364A KR102500742B1 (ko) | 2021-07-06 | 2021-07-06 | 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102500742B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0911745A2 (en) * | 1997-10-27 | 1999-04-28 | Hitachi, Ltd. | File format conversion method and file system, information processing system, electronic commerce system using the method |
KR101815924B1 (ko) * | 2016-12-02 | 2018-01-08 | 주식회사 한글과컴퓨터 | 복수의 유저들이 온라인으로 전자 문서의 작성이 가능하도록 협업 환경을 제공하는 온라인 문서 작성 서비스 장치 및 그 동작 방법 |
KR20190122993A (ko) * | 2018-04-23 | 2019-10-31 | 주식회사 한글과컴퓨터 | 브라우저에 탑재된 웹 에디터를 통해 웹 기반 문서의 저장을 위한 포맷 변환을 지원하는 클라이언트 단말 장치 및 그 동작 방법 |
KR20200106289A (ko) * | 2019-03-04 | 2020-09-14 | 주식회사 한글과컴퓨터 | 문서 편집 서버와 연동된 웹 기반의 문서 작성 환경에서 개체별 상태 변경을 가능하게 하는 전자 단말 장치 및 그 동작 방법 |
-
2021
- 2021-07-06 KR KR1020210088364A patent/KR102500742B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0911745A2 (en) * | 1997-10-27 | 1999-04-28 | Hitachi, Ltd. | File format conversion method and file system, information processing system, electronic commerce system using the method |
EP1411445A2 (en) * | 1997-10-27 | 2004-04-21 | Hitachi, Ltd. | File format conversion method and file system, information processing system, electronic commerce system using the method |
KR101815924B1 (ko) * | 2016-12-02 | 2018-01-08 | 주식회사 한글과컴퓨터 | 복수의 유저들이 온라인으로 전자 문서의 작성이 가능하도록 협업 환경을 제공하는 온라인 문서 작성 서비스 장치 및 그 동작 방법 |
KR20190122993A (ko) * | 2018-04-23 | 2019-10-31 | 주식회사 한글과컴퓨터 | 브라우저에 탑재된 웹 에디터를 통해 웹 기반 문서의 저장을 위한 포맷 변환을 지원하는 클라이언트 단말 장치 및 그 동작 방법 |
KR20200106289A (ko) * | 2019-03-04 | 2020-09-14 | 주식회사 한글과컴퓨터 | 문서 편집 서버와 연동된 웹 기반의 문서 작성 환경에서 개체별 상태 변경을 가능하게 하는 전자 단말 장치 및 그 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102500742B1 (ko) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102341823B (zh) | 计算机上的内容再现方法和系统 | |
CN109189841B (zh) | 一种多数据源访问方法及系统 | |
CN110020854B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN110245304B (zh) | 数据分享方法、设备以及计算机可读介质 | |
CN111666129B (zh) | 容器镜像处理方法、电子设备、存储介质及系统 | |
CN110020945B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
US20200213103A1 (en) | Blockchain transaction processing method and apparatus | |
CN110597877A (zh) | 一种区块链交易处理方法及装置 | |
CN103608801A (zh) | 演示软件自动化服务 | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN112866406A (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
KR102500742B1 (ko) | 동기 방식과 비동기 방식을 혼용하여 효율적으로 문서 파일의 포맷 변환 작업을 수행할 수 있도록 지원하는 포맷 변환 작업 할당 장치 및 그 동작 방법 | |
CN113691374A (zh) | 数据加密方法及装置、存储介质及电子设备 | |
JP2016514393A (ja) | 差分符号化のためのシリアライゼーション | |
KR102375509B1 (ko) | 복수의 포맷 변환 서버들에 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 파일의 포맷 변환 작업 할당 장치 및 그 동작 방법 | |
KR102545266B1 (ko) | 복수의 포맷 변환 서버들의 상태를 기초로 문서 파일의 포맷 변환 작업을 할당하기 위한 스케줄링을 수행하는 스케줄링 장치 및 그 동작 방법 | |
CN115328997A (zh) | 数据同步方法、系统、设备及存储介质 | |
KR102466717B1 (ko) | 문서의 포맷을 변환하는 포맷 변환 엔진이 탑재되어 있는 문서 변환 서버들에 대해, 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 변환 작업 할당 스케줄링 장치 및 그 동작 방법 | |
CN111931202A (zh) | 用于分布式系统的加密存储方法、终端设备和存储介质 | |
KR102675877B1 (ko) | 진본 문서임을 검증하기 위한 2차원 코드가 삽입된 전자 문서를 제공할 수 있는 문서 제공 서버 및 그 동작 방법 | |
CN115658838B (zh) | 地图集数据生成方法和装置、电子设备和存储介质 | |
US10831833B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
KR102636705B1 (ko) | 음성 데이터에 포함된 개인 정보를 마스킹 처리할 수 있는 마스킹 처리 서버 및 그 동작 방법 | |
JP7465301B2 (ja) | データ管理システム、データ管理方法、およびプログラム | |
KR102574293B1 (ko) | 전자 문서에 삽입되는 2차원 코드와의 연동을 통해 상기 전자 문서에 대한 저자 정보의 저장 및 조회를 가능하게 하는 블록체인 기반의 저자 정보 관리 서버 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |