KR101545670B1 - 데이터 연산 방법 및 시스템 - Google Patents

데이터 연산 방법 및 시스템 Download PDF

Info

Publication number
KR101545670B1
KR101545670B1 KR1020130088072A KR20130088072A KR101545670B1 KR 101545670 B1 KR101545670 B1 KR 101545670B1 KR 1020130088072 A KR1020130088072 A KR 1020130088072A KR 20130088072 A KR20130088072 A KR 20130088072A KR 101545670 B1 KR101545670 B1 KR 101545670B1
Authority
KR
South Korea
Prior art keywords
result value
value
information
client device
stored
Prior art date
Application number
KR1020130088072A
Other languages
English (en)
Other versions
KR20150012499A (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 KR1020130088072A priority Critical patent/KR101545670B1/ko
Publication of KR20150012499A publication Critical patent/KR20150012499A/ko
Application granted granted Critical
Publication of KR101545670B1 publication Critical patent/KR101545670B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 RPC(Remote Procedure Call) 서버를 이용한 데이터 연산 방법 및 시스템에 관한 것으로서, 특히, 저장 장치가 제1 결과값에 대한 저장 여부 및 연산 수행 중인지 여부에 대한 파라미터를 생성하여 저장하고, 중계장치가 클라이언트 장치 또는 RPC 서버의 요청에 따라서 상기 파라미터를 확인하여 제1 결과값을 포함하는 응답 프로토콜을 전송하거나 RPC 서버에 작업을 요청하는 요청 프로토콜을 전송하는 데이터 연산 방법 및 시스템에 관한 것이다.

Description

데이터 연산 방법 및 시스템{Methods and system for providing data operations}
본 발명은 RPC(Remote Procedure Call) 서버를 이용한 데이터 연산 방법 및 시스템에 관한 것이다.
RPC(Remote Procedure Call)는 분산 컴퓨팅이 시작되며 원격지에서 Procedure를 공유할 일이 생겨나고 그로 인해 규약이 필요해지며 생겨난 프로토콜이다. 원격에서 작업을 요청한 컴퓨터가 클라이언트가 되고 요청을 받은 컴퓨터는 서버가 되며 클라이언트는 서버에 있는 자원 및 작업을 자신의 컴퓨터에서 처리하는 것처럼 사용할 수 있게 되는 방법으로 코드의 재사용과 자원을 효율적으로 사용할 수 있다.
종래의 RPC를 이용한 분산 컴퓨팅 시스템은 클라이언트 컴퓨터의 제어를 통해서 다수의 RPC 서버가 동일 연산 작업 및 이미지 처리 작업 또는 각각 특정 연산 작업 등을 수행할 수 있다.
그러나, 큰 데이터를 필요로 하는 연산 작업 및 이미지 처리 작업 시에는 각각의 RPC 서버에서 연산 작업을 위해서 요구되는 데이터의 양이 급증하게 된다.
이처럼 큰 데이터의 이용이 요구되는 경우 RPC 서버로 대용량의 데이터가 전송되어야 하고, 통신 네트워크를 기반으로 대용량의 데이터가 전송되어 네트워크에 불필요한 오버헤드가 발생하는 문제점이 있다.
또한, 대용량 데이터의 연산 작업 수행 시, 이전 연산 작업에서 얻어진 결과 값이 이후 연산 작업에서도 사용되는 경우에 동일한 연산 작업을 반복해서 수행해야하며 이는 연산 작업의 속도를 지연시키는 문제점이 있다.
이러한 배경에서, 본 발명의 목적은, 저장 장치가 연산 결과값에 대한 저장 여부 및 연산 수행 중인지 여부에 대한 파라미터를 생성하여 저장하고, 중계장치가 클라이언트 장치 또는 RPC 서버의 요청에 따라서 상기 파라미터를 확인하여 요청받은 결과값을 전송하거나 RPC 서버에 요청받은 결과값 생성을 위한 작업 요청을 전송하는 데이터 연산 방법 및 시스템을 제공하는 데 있다.
또한, 본 발명의 목적은, 중계장치가 요청받은 결과값 확인 시, 요청된 연산 결과값 주변의 값으로부터 대푯값 및 평균값 등을 확인하여 제공하고, 이후 결과값의 연산이 종료되면 요청받은 결과값을 제공하는 데이터 연산 방법 및 시스템을 제공하는 데 있다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 데이터, 상기 데이터에 기초하여 연산된 최종 또는 부분 연산 결과값 및 상기 최종 또는 부분 연산 결과값에 대한 상태 정보를 포함하는 파라미터를 저장하는 저장 장치와 사용자의 입력 정보에 기초하여 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 프로토콜을 전송하는 클라이언트 장치와 제1 요청 프로토콜을 수신하고 상기 저장 장치에 접속하여 상기 요청 정보를 확인한 후 제1 응답 프로토콜을 상기 클라이언트 장치로 전송하는 중계장치 및 중계장치의 호출 프로토콜에 따라 상기 저장 장치에 접속하여 연산 작업을 수행하는 하나 이상의 RPC(Remote Procedure Call) 서버를 포함하는 데이터 연산 시스템을 제공한다.
다른 측면에서, 본 발명은, 데이터 연산 시스템이 데이터 연산 작업을 수행하는 방법에 있어서,저장 장치가 데이터, 상기 데이터에 기초하여 연산된 최종 또는 부분 연산 결과값 및 최종 또는 부분 연산 결과값에 대한 상태 정보를 포함하는 파라미터를 저장하는 단계와 클라이언트 장치가 사용자의 입력 정보에 기초하여 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 프로토콜을 전송하는 단계와 중계 장치가 상기 제1 요청 프로토콜을 수신하고 상기 저장 장치에 접속하여 상기 요청 정보를 확인한 후 제1 응답 프로토콜을 상기 클라이언트 장치로 전송하는 단계 및 하나 이상의 RPC(Remote Procedure Call) 서버가 상기 중계장치의 호출 프로토콜에 따라 상기 저장 장치에 접속하여 연산 작업을 수행하는 단계를 포함하는 데이터 연산 작업 수행 방법을 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 저장 장치가 연산 결과값에 대한 저장 여부 및 연산 수행 중인지 여부에 대한 파라미터를 생성하여 저장하고, 중계장치가 클라이언트 장치 또는 RPC 서버의 요청에 따라서 상기 파라미터를 확인하여 요청받은 결과값을 전송하거나 RPC 서버에 요청받은 결과값 생성을 위한 작업 요청을 전송하는 데이터 연산 방법 및 시스템을 제공하는 효과가 있다.
또한, 본 발명에 의하면, 중계장치가 요청 결과값 확인 시, 요청된 연산 결과값 주변의 값으로부터 대푯값 및 평균값 등을 확인하여 제공하고, 이후 결과값의 연산이 종료되면 요청받은 결과값을 제공하여 빠르게 요청받은 결과값을 우선 제공하여 빠른 데이터 연산을 제공하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른, 데이터 연산 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값의 저장 여부를 확인하여 확인 결과에 따라 제1 응답 프로토콜을 전송하는 것을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값 저장 여부 및 연산 작업 수행 중인지에 대한 정보에 기초하여 제1 응답 프로토콜을 전송하는 것을 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 클라이언트 장치 및 다른 클라이언트 장치가 제1 결과값을 요청하는 경우에 제1 응답 프로토콜이 전송되는 과정을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 일 실시예에 따른, 제1 결과값이 연산 중인 경우에 제1 응답 프로토콜이 전송되는 과정을 예시적으로 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값의 주변 값을 이용하여 제1 응답 프로토콜을 전송하는 과정을 예시적으로 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른, 클라이언트 장치가 폴링방식에 따라 제1 결과값을 확인하는 과정을 예시적으로 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른, 데이터 연산 방법의 흐름도이다.
도 9는 본 발명의 일 실시예에 따른, 저장장치가 데이터 세트 및 파라미터를 생성하고 저장하는 것을 나타낸 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 명세서에서 본 발명인 데이터 연산 시스템은 연산 작업뿐만 아니라 이미지 처리 작업 등 컴퓨터로 처리 가능한 작업을 수행할 수 있으며, 단지 설명 및 이해의 편의를 돕기 위해서 일 예를 들어 연산 작업을 수행하는 것으로 이하에서 설명한다.
또한, 프로토콜은 통신 규약을 의미할 수 있으나, 이해의 편의를 위하여 본 명세서에서 "프로토콜"은 장치 또는 서버 간에 각종 요청 및 데이터를 송수신하는 경우에 각종 정보를 포함하는 파라미터들이 포함될 수 있는 신호를 의미한다.
따라서, 이하 본 명세서에서 "프로토콜을 전송한다는 표현"은 연산 요청 및 연산 요청에 대한 응답 RPC 서버를 호출하는 호출과 관련된 "신호를 전송한다"는 의미로 이해될 수 있으며, 이하에서 기재되는 각종 정보를 포함하는 파라미터들이 전달되는 것을 의미할 수도 있다.
또한, 본 명세서에서 "중계장치", "RPC 서버" 및 "클라이언트 장치"는 컴퓨터일 수 있고, 서버일 수도 있으며 기타 컴퓨팅이 가능한 장치를 의미한다. 즉, 서비스를 요청하는 장치가 클라이언트 장치가 될 수 있고, 서비스 요청을 받아 서비스 처리를 수행하는 장치가 "RPC 서버"가 될 수 있다. 따라서, RPC 서버는 꼭 서버(Server)만을 의미하는 것은 아니고 일반 컴퓨터, 노트북 또는 휴대용 단말기 등도 포함될 수 있다.
또한, 본 명세서에서 "저장 장치"는, 데이터 베이스, 저장 미디어, 파일 시스템 클라우드 시스템 등 자료를 저장하고 갱신할 수 있는 기능을 수반하는 모든 장치를 포함하는 의미로 기재된다.
도 1은 본 발명의 일 실시예에 따른, 데이터 연산 시스템의 블록도(100)이다.
본 발명의 일 실시예에 따른, 데이터 연산 시스템(100)은, 데이터, 데이터에 기초하여 연산된 최종 또는 부분 연산 결과값 및 최종 또는 부분 연산 결과값에 대한 상태 정보를 포함하는 파라미터를 저장하는 저장 장치(110)와 사용자의 입력 정보에 기초하여 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 프로토콜을 전송하는 클라이언트 장치(120)와 제1 요청 프로토콜을 수신하고 저장 장치에 접속하여 요청 정보를 확인한 후 제1 응답 프로토콜을 클라이언트 장치로 전송하는 중계장치(130) 및 중계장치의 호출 프로토콜에 따라 저장 장치에 접속하여 연산 작업을 수행하는 하나 이상의 RPC(Remote Procedure Call) 서버(140)를 포함한다.
도 1을 참조하여 예를 들어 설명하면, 저장장치(110)는 연산을 위해 필요한 또는 연산하고자 하는 데이터들의 집합인 데이터 세트(112) 및 각 데이터 세트마다 최종 연산 결과값 또는 부분 연산 결과값의 저장여부와 관련된 정보, 해당 최종 또는 부분 연산 결과값이 저장장치(110) 내에서 저장된 위치에 대한 인덱스 정보, 최종 또는 부분 연산 결과값의 연산 작업 수행 여부와 관련된 정보 및 각 부분 연산 결과값이 최종 연산 결과값 내에서 차지하는 위치와 관련된 정보 중 하나 이상의 정보를 포함하는 파라미터(114)를 저장하고 있다.
이 경우, 클라이언트 장치(120)가 특정한 결과값(이하, 제1 결과값)에 대한 정보를 요청하는 제1 요청 프로토콜을 중계장치(130)로 전송하고, 중계장치(130)는 저장 장치(110)에 접속하여 제1 요청 프로토콜에 포함된 정보를 이용하여 제1 결과값에 대한 정보의 저장 여부를 확인한다. 이후, 확인된 제1 결과값 또는 제1 결과값이 저장 장치(110) 내에서 저장된 위치 정보와 관련된 인덱스 정보를 포함하는 제1 응답 프로토콜을 클라이언트 장치(120)로 전송한다.
만약, 중계 장치(130)의 확인 결과 제1 결과값이 저장되지 않은 경우에는 RPC 서버(140)로 전술한 제1 결과값 연산을 위한 정보를 포함하는 호출 프로토콜을 전송하며, 호출 프로토콜은 수신한 RPC 서버(140)는 프로토콜에 포함된 정보에 기초하여 저장 장치(110)에 접속하여 해당 데이터 세트(112)를 이용하여 제1 결과값 연산을 수행할 수 있다.
전술한, 중계 장치(130)는, 클라이언트 장치(120)가 요청한 제1 결과값을 RPC 서버(140)의 이전 연산 작업 히스토리 또는 저장 장치(110)와 RPC 서버(140)간의 물리적 이격 거리 및 데이터 전송 속도 등의 정보에 기초하여 가장 빠르게 제1 결과값의 연산 작업을 수행할 수 있는 RPC 서버(140)를 선택하여 전술한 호출 프로토콜을 전송할 수 있다.
또한, 호출 프로토콜에는 예를 들어, 제1 결과값을 얻기 위해서 필요한 특정 데이터 세트(112)를 지시하는 인덱스 정보 및 요청 클라이언트 장치(120) 정보 등 연산 작업에 필요한 직접 또는 간접적인 정보가 포함될 수 있다.
본 발명의 일 실시예에 따른, 전술한 저장 장치(110)는, 연산 작업을 수행하는데 필요한 전체 또는 일부의 데이터를 하나의 데이터 세트로 설정하여 저장하고, 데이터 세트(112)에 대해서 연산 프로시저를 설정할 수 있다.
예를 들어 설명하면, 저장 장치(110)는, 다수의 연산 작업에 필요한 데이터 및 그 연산 결과값을 저장할 수 있으며, 각각의 연산 작업에 필요한 전체 또는 일부의 데이터를 각각의 데이터 세트(112)로 나누어 설정하고 저장할 수 있다.
또한, 설정된 각각의 데이터 세트(112)와 관련하여 연산 작업의 특성 및 미리 설정된 기준에 의하여 일반 프로시저 또는 리모트(remote) 프로시저 등으로 해당 연산 작업의 프로시저를 나누어 설정하고 저장할 수 있다.
또한, 본 발명의 일 실시예에 따른 저장 장치(110)는, 최종 또는 부분 연산 결과값 각각의 저장 여부 정보, 상기 저장 장치에 저장된 위치 정보, 상기 부분 연산 결과값이 상기 최종 연산 결과값에서 차지하는 위치 정보 및 연산 작업 수행 상태 정보 중 하나 이상의 정보를 포함하는 상기 파라미터(114)를 설정하여 저장할 수 있다.
즉, 각각의 데이터 세트(112)별로 나누어 해당 데이터 세트의 최종 연산 결과값의 저장여부 또는 최종 연산 결과값을 얻기 위해서 각각의 RPC 서버(140)가 연산한 부분 연산 결과값의 저장여부를 나타내는 파라미터를 설정하여 저장할 수 있으며, 각각의 연산 결과값이 저장장치(110) 내에 저장된 인덱스 정보와 부분 연산 결과값이 최종 연산 결과값에서 차지하는 위치 정보 및 각각의 부분 연산 결과값이 연산 수행 중인지를 지시하는 파라미터 등을 포함하는 파라미터(114)를 설정하여 저장할 수 있다.
이러한, 파라미터(114)는, 중계장치(130) 또는 클라이언트 장치(120) 또는 RPC 서버(140)가 저장 장치(110)에 접속하여 연산 작업을 수행 또는 결과값을 인식할 경우 빠르게 해당 정보를 확인할 수 있도록 해주는 효과가 있다.
예를 들어 구체적으로 설명하면, 각 데이터 세트별로 설정된 파라미터(114)의 일부 필드 값이 1로 설정된 경우 해당 부분 연산 결과값이 저장장치(110)에 저장된 것을 의미할 수 있으며, -1로 설정된 경우 해당 부분 연산 결과값이 저장되지 않은 것을 의미할 수 있다. 만약, 0으로 설정되면, 해당 부분 연산이 RPC 서버(140)에 의해서 수행 중이라는 의미를 포함할 수 있다.
따라서, 중계 장치(130)는, 각 파라미터(114)의 필드 정보를 확인하여 연산 결과값의 저장 여부 및 저장되었다면, 저장 장치(110)의 어느 부분에 저장되었는지 빠르게 확인할 수 있는 효과가 있다.
또한, 본 발명의 일 실시예에 따른, 중계장치(130)는, 파라미터를 저장하고, 제1 요청 프로토콜을 수신하면, 파라미터에 기초하여 상기 제1 응답 프로토콜을 전송할 수도 있다.
즉, 중계 장치(130)는 파라미터(114) 정보를 중계 장치(130) 내에 직접 저장하고, 클라이언트 장치(120)로부터 제1 요청 프로토콜이 수신되면, 해당 요청 정보의 저장 여부 및 연산 작업 수행 여부 등의 정보를 중계 장치(130) 내에 저장된 파라미터에 기초하여 확인하고, 제1 응답 프로토콜을 전송할 수 있다.
이하에서는, 설명의 편의를 위해서 파라미터가 저장 장치(110) 내에 저장된 경우를 가정하여 설명하나, 파라미터가 중계 장치(130) 내에 포함되는 경우에도 전술한 바와 같이 본 발명의 일 실시예로 데이터 연산 시스템이 수행될 수 있다.
도 2는 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값의 저장 여부를 확인하여 확인 결과에 따라 제1 응답 프로토콜을 전송하는 것을 나타내는 흐름도이다.
본 발명의 일 실시예에 따른, 중계 장치는, 파라미터에 포함된 정보를 확인하여 제1 결과값이 저장 장치에 저장된 경우, 제1 결과값 및 제1 결과값의 저장위치에 대한 인덱스 정보 중 하나 이상의 정보를 포함하는 제1 응답 프로토콜을 클라이언트 장치로 전송하고, 제1 결과값이 저장되지 않은 경우, RPC 서버로 제1 결과값 생성을 위한 연산 작업 요청 정보를 포함하는 호출 프로토콜을 전송할 수 있다.
도 2를 참조하여 설명하면, 중계장치는, 클라이언트 장치로부터 제1 결과값의 정보를 요청하는 파라미터를 포함하는 제1 요청 프로토콜을 수신(S210)하고, 중계장치와 유무선으로 연결된 저장 장치에 접속하여 요청된 제1 결과값이 저장되었는지 확인(S220)하여, 제1 결과값이 저장되어 있는 경우 제1 결과값 또는 제1 결과값의 저장 위치와 관련된 인덱스 정보를 포함하는 제1 응답 프로토콜을 클라이언트 장치로 전송(S250)한다.
만약, 제1 결과값이 저장되지 않았다면, 중계장치는 제1 결과값을 얻기 위한 연산을 수행하기에 적합한 RPC 서버를 선택하여 해당 RPC 서버로 제1 결과값을 얻기 위한 연산 작업을 요청하는 호출 프로토콜을 전송(S230)하고, RPC 서버로부터 제1 결과값에 대한 연산 완료 정보를 수신(S240)하여 제1 결과값을 저장장치에 저장 후 제1 응답 프로토콜을 클라이언트 장치로 전송(S250)할 수 있다.
또한, 다른 예로 RPC 서버는 연산 작업을 완료하여 제1 결과값을 저장 장치에 바로 저장하고, 해당 제1 결과값이 저장된 저장 위치 값만을 중계 장치로 전송할 수도 있다.
일 예로, 위에서 언급한 호출 프로토콜에는 제1 결과값 연산에 필요한 데이터 세트 정보, 요청 클라이언트 장치 관련 정보 및 제1 결과값 연산 후 저장할 데이터 저장 위치에 관련된 정보 등 RPC 서버가 제1 결과값을 얻기 위한 연산 작업을 수행하고, 수행 결과값을 저장 및 전송하는데 필요한 다양한 정보가 포함될 수 있다.
도 3은 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값 저장 여부 및 연산 작업 수행 중인지에 대한 정보에 기초하여 제1 응답 프로토콜을 전송하는 것을 나타낸 흐름도이다.
본 발명의 일 실시예에 따른, 중계 장치는, 제1 결과값이 저장되지 않은 경우 호출 프로토콜에 따라 RPC 서버가 연산한 제1 결과값을 수신(S350)하고, 제1 응답 프로토콜을 클라이언트 장치로 전송(S360)할 수 있다.
또한, 본 발명의 일 실시예에 따른, 중계 장치는, 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우(S330), RPC 서버에 의한 계산이 완료(S350)된 후 상기 제1 응답 프로토콜을 클라이언트 장치로 전송(S360)할 수 있다.
도 3을 참조하여 설명하면, 중계 장치는, 클라이언트 장치로부터 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 프로토콜을 수신(S310)하고, 저장 장치에 접속하여 요청된 제1 결과값의 저장 여부를 확인(S320)한다. 제1 결과값이 저장된 경우에는 제1 결과값 데이터 또는 제1 결과값이 저장된 위치 인덱스 데이터를 포함하는 제1 응답 프로토콜을 전송(S360)할 수 있다.
만약, 제1 결과값이 저장 장치에 저장되지 않은 경우에는 제1 결과값이 연산 작업 수행 중인지 파라미터를 확인하여 판단(S330)하고, 연산 작업 수행 중인 경우 RPC 서버로부터 제1 결과값에 대한 정보가 수신(S350)되면 제1 응답 프로토콜을 전송(S360)한다.
제1 결과값 연산이 수행 중이 아닌 경우에는 제1 결과값 연산을 수행할 RPC 서버를 선택하여 해당 RPC 서버로 제1 결과값 도출을 위한 연산 작업 수행을 요청하는 정보를 포함하는 호출 프로토콜을 전송(S340)한다. 이후 RPC 서버의 연산 작업이 끝난 경우 S350 및 S360의 단계가 수행된다.
위에서 언급되는 RPC 서버로부터 제1 결과값에 대한 정보를 수신하는 경우, 제1 결과값에 대한 정보는 제1 결과값 자체의 정보일 수도 있으며, 제1 결과값이 저장 장치에 저장된 위치와 관련된 인덱스 정보일 수도 있다. 이하 설명에서도 마찬가지로 해석될 수 있다.
또한, 도 2 및 도 3에서 설명한 바와 같이 중계 장치가 저장 장치에 접속하여 제1 결과값의 저장 여부 및 연산 작업 수행 중 여부에 대한 판단 시, 저장 장치에 저장된 파라미터에 기초하여 판단할 수 있다.
즉, 예를 들면, 위에서 언급한 바와 같이 파라미터의 특정 필드의 값이 1인 경우 결과값이 저장된 것으로 0인 경우 연산 작업 수행 중인 것으로 -1인 경우 저장되지 않은 것으로 판단할 수 있는 것이다. 이하 설명에서도 중계 장치는 파라미터에 포함된 정보에 기초하여 연산 결과값의 저장 여부, 연산 작업 중에 대한 판단 및 저장 위치 등을 판단할 수 있다.
도 4는 본 발명의 일 실시예에 따른, 클라이언트 장치(430) 및 다른 클라이언트 장치(410)가 제1 결과값을 요청하는 경우에 제1 응답 프로토콜이 전송되는 과정을 예시적으로 보여주는 도면이다.
본 발명의 일 실시예에 따른, 중계 장치(450)는, 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트 장치로부터 상기 제1 결과값에 대한 제2 요청 프로토콜이 수신(S419)되면, RPC 서버에 의한 계산이 완료된 후 클라이언트 장치 및 다른 클라이언트 장치로 제1 응답 프로토콜을 전송(S429, S431)할 수 있다.
도 4를 참조하여 구체적으로 설명하면, 사용자가 제1 결과값에 대한 요청 정보를 입력하면(S411) 클라이언트 장치(430)는 제1 결과값에 대한 요청 시 필요한 정보가 포함된 제1 요청 프로토콜을 중계 장치(450)로 전송한다.
중계 장치(450)는 제1 요청 프로토콜을 수신하여 저장 장치(470)에 접속하여 해당 파라미터를 확인해서 제1 결과값의 저장 여부를 확인(S417)할 수 있다.
만약, 제1 결과값 확인 결과(S417) 제1 결과값이 연산 작업 중(S409)으로 판단되면, 제1 응답 프로토콜을 전송하지 않고, 대기할 수 있다.
전술한 대기 중에 클라이언트 장치(430)와 다른 클라이언트 장치(410)으로부터 동일한 제1 결과값을 요청하는 제2 요청 프로토콜이 수신되면(S419), 중계 장치(S450)는 제1 결과값의 확인 과정을 다시 거치지 않고, RPC 서버로부터 제1 결과값이 전송될 때까지 대기할 수 있다.
이후, RPC 서버(490)는 연산을 완료(S421)하고 제1 결과값을 중계 장치(450)로 전송(S423)할 수 있다. 중계 장치(450)는 수신된 제1 결과값을 저장 장치(470)로 전송(S425)하고, 저장 장치(470)는 이를 저장(S427)할 수 있으며, 중계 장치(450)는 저장된 제1 결과값의 저장 장치 내 저장 위치에 대한 인덱스 정보 등을 포함하는 제1 결과값에 대한 정보를 확인(S428)하여 대기 중인 클라이언트 장치(430) 및 다른 클라이언트 장치(410)로 전송(S429, S431)할 수 있다. 이 경우, 동시에 전송할 수도 있으며, 순차적으로 전송할 수도 있다.
또한, 다른 예로, 중계 장치는 S423 단계 이후에 저장 장치에 제1 결과값을 전송(S425)함과 동시에 제1 응답 프로토콜을 클라이언트 장치 및 다른 클라이언트 장치로 전송(S429, S431)할 수도 있다.
도 5는 본 발명의 일 실시예에 따른, 제1 결과값이 연산 중인 경우에 제1 응답 프로토콜이 전송되는 과정을 예시적으로 나타낸 도면이다.
본 발명의 일 실시예에 따른, 중계 장치(550)는, 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트 장치로부터 제1 결과값에 대한 제2 요청 프로토콜이 수신되면, 연산 작업 수행 중이라는 정보를 포함하는 제2 응답 프로토콜을 전송하고, 다른 클라이언트 장치는 폴링방식에 따라서 확인할 수 있다.
도 5를 참조하여 설명하면, 중계 장치(550)는 클라이언트 장치(530)로부터 제1 결과값 요청 정보가 포함된 제1 요청 프로토콜을 수신하고(S513), 저장장치(570)에 접속하여 제1 결과값의 저장 여부를 확인(S517)한다. 확인 결과 제1 결과값이 연산 작업 수행 중(S509)인 경우, 제1 응답 프로토콜을 전송하지 않고 대기한다.
대기 중에 다른 클라이언트 장치(510)로부터 제1 결과값에 대한 제2 응답 프로토콜이 전송(S519)되는 경우에 중계 장치(550)는, 요청한 제1 결과값에 연산 작업 수행 중이라는 정보를 포함하는 제2 응답 프로토콜을 전송(S521)할 수 있다.
이후, RPC 서버(590)가 제1 결과값 연산을 완료(S523)하면, 중계 장치(550)는 제1 결과값을 전송 받고(S525), 저장장치(570)로 송신(S527)하여 제1 결과값을 저장(S529)한다.
이후, 중계 장치(550)는 제1 결과값에 대한 정보를 저장 장치(570)에 접속하여 확인(S531)하고, 제1 결과값에 대한 정보를 포함하는 제1 응답 프로토콜을 클라이언트 장치(530)에 전송(S533)한다.
제2 응답 프로토콜을 전송받은 다른 클라이언트 장치(510)는 폴링 방식에 따라 중계 장치(550)에 제1 결과값을 확인(S535)하고, 중계 장치(550)는 제1 응답 프로토콜을 전송(S537)할 수 있다.
위에서 언급한, 폴링 방식이란, 정해진 시간 또는 순번에 따라서 상태를 확인해서 상태 변화가 있는지 없는지를 체크하는 것으로, 예를 들어 설명하면, 다른 클라이언트 장치(510)가 미리 설정된 일정 시간 또는 순번에 따라서 중계장치(550)로 폴링 방식에 따라 제1 결과값에 대한 조회를 요청하고, 중계 장치는 제1 결과값이 아직 연산 완료되지 않은 경우, 종료 코드를 송신할 수 있다. 만약, 다른 클라이언트 장치(510)의 폴링 방식에 따른 제1 결과값에 대한 확인 요청(S535) 있고, 제1 결과값의 연산이 완료된 경우, 중계 장치(550)는 제1 응답 프로토콜을 전송(S537)할 수 있다.
전술한 바와 같이, 중계 장치(550)는 폴링 방식에 의해서 다른 클라이언트 장치(510)로 제1 응답 프로토콜을 전송함으로써, RPC 서버로부터 제1 연산 결과값을 전송받은 경우(S525)에도 다른 클라이언트 장치의 폴링 방식에 따른 확인 있을 때까지 제1 응답 프로토콜을 전송하지 않고 대기한다. 이후 다른 클라이언트 장치의 확인(S535)이 있는 경우에 제1 응답 프로토콜을 전송(S537)한다.
이와 같이 폴링 방식에 따라 제1 응답 프로토콜을 전송함으로써, 중계 장치(550)의 과도한 부하를 방지하고, 순차적으로 제1 응답 프로토콜을 전송하는 효과가 있다. 또한, 각 클라이언트 장치의 상황 변화에 따라서 제1 응답 프로토콜의 전송을 제어할 수 있는 효과도 있다.
도 6은 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값의 주변 값을 이용하여 제1 응답 프로토콜을 전송하는 과정을 예시적으로 나타낸 도면이다.
본 발명의 일 실시예에 따른, 중계 장치(650)는, 제1 결과값이 저장되지 않은 경우, 파라미터 정보에 기초하여 최종 연산 결과값에서 제1 결과값이 차지하는 위치 주변의 부분 연산 결과값들의 대푯값, 평균값, 중간값 및 최빈값 중 적어도 하나 이상의 값에 대한 정보를 포함하는 제3 응답 프로토콜을 클라이언트 장치(630)로 전송(S623)할 수 있다.
또한, 본 발명의 일 실시예에 다른, 중계 장치(650)는, 제3 응답 프로토콜을 클라이언트 장치로 전송(S623)한 후, 제1 결과값이 RPC 서버(690)로부터 수신되면 제1 결과값 정보를 포함하는 제1 응답 프로토콜을 클라이언트 장치(630)로 전송(S635)할 수 있다.
도 6을 참조하여 설명하면, 중계 장치(650)는 클라이언트 장치(630)로부터 제1 결과값 요청 정보를 포함하는 제1 요청 프로토콜을 수신받고(S613), 저장장치(670)에 접속하여 제1 결과값의 저장 여부를 확인(S617)할 수 있다.
중계장치(650)는 파라미터에 기초하여 제1 결과값이 저장되지 않은 경우, 파라미터 및 저장 데이터에 기초하여 제1 결과값의 주변 값을 확인하고(S619), 주변 값 정보를 이용하여 대푯값, 평균값, 중간값 및 최빈값 중 미리 설정된 기준에 따라 하나 이상의 정보를 생성(S621)하여 생성된 정보가 포함된 제3 응답 프로토콜을 클라이언트 장치(630)로 전송(S623)할 수 있다.
즉, 일 예로, 중계장치(650)는 제1 결과값을 확인(S617)하여 제1 결과값이 연산 중이 아닌 경우에는 RPC 서버(690)로 전술한 호출 프로토콜을 전송(S618)하고, 제1 결과값이 연산 중으로 확인되면 호출 프로토콜 전송과정 없이 S619과정을 수행할 수 있다.
또한, 중계 장치(650)는, 제3 응답 프로토콜 전송 이후에 RPC 서버(690)으로부터 제1 결과값이 전송되면(S627), 제1 결과값을 저장 장치(670)로 전송(S629)하여 저장(S631)하고, 제1 결과값에 대한 정보를 확인(S633)하여 제1 결과값 정보가 포함된 제1 응답 프로토콜을 클라이언트 장치(630)로 전송(S635)할 수 있다.
이 경우, 중계 장치(650)는 S627 단계 이후에 제1 결과값을 저장 장치로 전송하기 전 또는 동시에 제1 응답 프로토콜을 전송할 수도 있다.
예를 들면, 사용자가 이미지의 특정 부분에 대한 값을 요청하면, 중계 장치(650)는 이 값의 저장 여부를 확인(S617)하고, 해당 값이 연산 중이거나 저장되지 않은 경우에 해당 값의 주변에 위치한 부분에 대한 이미지 값을 확인(S619)하여 평균값 등을 생성(S621)하고, 클라이언트 장치(630)로 해당 평균값 등을 전송(S623)할 수 있다.
이와 같이 제3 응답 프로토콜을 전송함으로써, 제1 결과값에 대한 연산이 종료되기 까지 기다림 없이 유사한 값에 기초하여 우선적으로 결과값을 전송하여 빠른 응답 및 대기시간을 줄이는 효과를 얻을 수 있다.
도 7은 본 발명의 일 실시예에 따른, 클라이언트 장치가 폴링방식에 따라 제1 결과값을 확인하는 과정을 예시적으로 나타낸 도면이다.
본 발명의 일 실시예에 따른, 중계 장치(750)는, 제3 응답 프로토콜을 클라이언트 장치로 전송(S723)한 후, 제1 결과값이 RPC 서버로부터 수신(S727)되면 저장 장치(770)에 저장(S731)하고, 클라이언트 장치(730)가 중계장치(750)로 폴링 방식에 따른 확인(S733) 시 제1 응답 프로토콜을 전송(S737)할 수 있다.
도 7을 참조하여 설명하면, 중계 장치(750)는, 제1 결과값 요청 정보를 포함하는 제1 요청 프로토콜을 수신(S713)하여, 저장 장치에 접속하여 제1 결과값의 저장 여부를 확인(S717)하고, 제1 결과값이 없는 경우에 제1 결과값의 주변에 위치한 주변 값을 확인(S719)할 수 있다.
즉, 일 예로, 중계장치(750)는 제1 결과값을 확인(S717)하여 제1 결과값이 연산 중이 아닌 경우에는 RPC 서버(790)로 전술한 호출 프로토콜을 전송(S718)하고, 제1 결과값이 연산 중으로 확인되면 호출 프로토콜 전송과정 없이 S719과정을 수행할 수 있다.
중계 장치(750)는 확인된 주변 값을 이용하여 평균값, 대푯값, 중간값 및 최빈값 중 하나 이상의 값을 미리 설정된 기준에 따라 생성(S721)하고, 생성된 평균값 등의 정보가 포함도니 제3 응답 프로토콜을 클라이언트 장치(730)로 전송(S723)할 수 있다.
이후, 중계 장치(750)는 제1 결과값 연산이 완료(S725)되면, 제1 결과값을 전송받고(S727), 이를 저장 장치(770)에 전송(S729)하여 저장(S731)할 수 있다.
클라이언트 장치(730) 제3 응답 프로토콜을 전송 받은(S723) 후, 폴링 방식에 따라 확인 요청(S733)을 하면, 중계 장치(750)는 제1 결과값을 확인(S735)하여, 제1 응답 프로토콜을 전송(S737)할 수 있다.
전술한 폴링 방식은 일정 시간이나, 순번에 따라 해당 정보의 확인을 요청하고 해당 정보가 있는 경우, 중계 장치(750)가 이를 전송하고, 해당 정보가 없는 경우에는 종료 코드를 전송하는 방식을 의미할 수 있다.
전술한, RPC 서버는, 네트워크를 통하여 불특정 다수 클라이언트 장치 및/또는 저장 장치, 중계 장치와 연결될 수 있는데, 이에 따라, RPC 서버는 클라이언트 장치 또는 중계 장치의 작업수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 또는 이러한 컴퓨터 시스템을 위하여 설치되어 있는 컴퓨터 소프트웨어(서버 프로그램)를 뜻하는 것일 수도 있다.
또한, RPC 서버 또는 중계 장치는, 서버상에서 동작하는 일련의 응용 프로그램(Application Program)과, 경우에 따라서는 내부 또는 외부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해되어야 할 것이다.
여기서, 저장 장치는, 서버 또는 다른 장치 등에 의해 사용될 목적으로 정보나 자료 등의 데이터가 구조화되어 관리되는 데이터의 집합체를 의미할 수 있으며, 이러한 데이터의 집합체를 저장하는 저장매체를 의미할 수도 있다.
또한, 이러한 저장 장치는 데이터의 구조화 방식, 관리 방식, 종류 등에 따라 분류된 복수의 저장 장치를 포함하는 것일 수도 있다.
경우에 따라서, 저장 장치는 정보나 자료 등을 추가, 수정, 삭제 등을 할 수 있도록 해주는 소프트웨어인 데이터베이스 관리시스템(Database Management System, DBMS)을 포함할 수도 있다.
한편, 네트워크는 RPC 서버와 중계 장치 또는 저장 장치 또는 클라이언트 장치를 연결해주는 망(Network)으로서, LAN(Local Area Network), WAN(Wide Area Network)등의 폐쇄형 네트워크일 수도 있으나, 인터넷(Internet)과 같은 개방형 네트워크일 수도 있다. 여기서, 인터넷은 TCP/IP 프로토콜 및 그 상위계층에 존재하는 여러 서비스, 즉 HTTP(HyperText Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service)를 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미할 수 있다.
간략하게 전술한 본 발명의 일 실시예에 따른 데이터 연산 방법에 대하여, 이하에서 더욱 상세하게 설명한다.
도 8은 본 발명의 일 실시예에 따른, 데이터 연산 방법의 흐름도이다.
본 발명의 일 실시예에 따른, 데이터 연산 시스템이 데이터 연산 작업을 수행하는 방법은, 저장 장치가 데이터, 상기 데이터에 기초하여 연산된 최종 또는 부분 연산 결과값 및 최종 또는 부분 연산 결과값에 대한 상태 정보를 포함하는 파라미터를 저장하는 단계(S800)와 클라이언트 장치가 사용자의 입력 정보에 기초하여 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 프로토콜을 전송하는 단계(S802)와 중계 장치가 제1 요청 프로토콜을 수신하고 저장 장치에 접속하여 요청 정보를 확인한 후 제1 응답 프로토콜을 클라이언트 장치로 전송하는 단계(S804) 및 하나 이상의 RPC(Remote Procedure Call) 서버가 중계장치의 호출 프로토콜에 따라 저장 장치에 접속하여 연산 작업을 수행하는 단계(S806)를 포함할 수 있다.
도 8을 참조하여 상세히 설명하면, 본 발명의 데이터 연산 방법은, 저장 장치가 데이터 및 데이터에 관한 파라미터를 저장하는 단계(S800)와 클라이언트 장치가 사용자의 입력 요청 정보에 기초하여 생성된 제1 요청 프로토콜을 중계 장치로 전송하는 단계(S802)와 중계 장치가 제1 요청 프로토콜을 수신받아 제1 요청 프로토콜에 포함된 요청 정보의 저장 여부를 확인하여 판단하고, 해당 정보가 있는 경우, 클라이언트 장치로 제1 응답 프로토콜을 전송하는 단계(S804)를 포함하고, 해당 정보가 없는 경우, RPC 서보로 해당 정보를 얻기 위한 연산 작업을 명령하는 정보를 포함하는 호출 프로토콜을 전송하여 RPC 서버가 해당 연산 작업을 수행하는 단계(S806)를 포함한다.
전술한 파라미터는 중계 장치에 저장될 수도 있고, 이 경우, 중계 장치는 저장 장치에 접속함 없이 제1 요청 프로토콜에 포함된 요청 정보의 저장 장치 내에 저장 여부를 확인할 수 있다.
도 9는 본 발명의 일 실시예에 따른, 저장장치가 데이터 세트 및 파라미터를 생성하고 저장하는 것을 나타낸 흐름도이다.
본 발명의 일 실시예에 따른, 중계 장치가 데이터 및 파라미터를 저장하는 단계(S800)는, 연산 작업을 수행하는데 필요한 전체 또는 일부의 데이터를 하나의 데이터 세트로 설정하여 저장하는 단계(S900)와 데이터 세트에 대해서 연산 프로시저를 설정하는 단계(S902) 및 최종 또는 부분 연산 결과값 각각의 저장 여부 정보, 데이터 저장 장치에 저장된 위치 정보, 부분 연산 결과값이 최종 연산 결과값에서 차지하는 위치 정보 및 연산 작업 수행 상태 정보 중 하나 이상의 정보를 포함하는 파라미터를 생성하여 저장하는 단계(S904)를 포함할 수 있다.
도 9를 참조하여 상세히 설명하면, 저장 장치는, 연산 작업을 수행하는데 필요한 전체 또는 일부의 데이터를 하나의 데이터 세트로 설정하여 저장(S900)하고, 데이터 세트에 대해서 연산 프로시저를 설정(S902)할 수 있다.
예를 들어 설명하면, 데이터 세트 설정 및 저장 단계(S900)는, 다수의 연산 작업에 필요한 데이터 및 그 연산 결과값을 저장할 수 있으며, 각각의 연산 작업에 필요한 전체 또는 일부의 데이터를 각각의 데이터 세트로 나누어 설정하고 저장할 수 있다.
또한, 데이터 세트에 대해서 연산 프로시저를 설정(S902)하는 단계에서는, 설정된 각각의 데이터 세트와 관련하여 연산 작업의 특성 및 미리 설정된 기준에 의하여 일반 프로시저 또는 리모트(remote) 프로시저 등으로 해당 연산 작업의 프로시저를 나누어 설정하고 저장할 수 있다.
또한, 파라미터 생성 및 저장 단계(S904)에서는, 최종 또는 부분 연산 결과값 각각의 저장 여부 정보, 저장 장치에 저장된 위치 정보, 상기 부분 연산 결과값이 상기 최종 연산 결과값에서 차지하는 위치 정보 및 연산 작업 수행 상태 정보 중 하나 이상의 정보를 포함하는 상기 파라미터를 설정하여 저장할 수 있다.
예를 들면, 파라미터 생성 및 저장 단계(S904)는, 각각의 데이터 세트별로 나누어 해당 데이터 세트의 최종 연산 결과값의 저장 여부 또는 최종 연산 결과값을 얻기 위해서 각각의 RPC 서버가 연산한 부분 연산 결과값의 저장 여부를 나타내는 파라미터를 설정하여 저장할 수 있으며, 각각의 연산 결과값이 저장장치 내에 저장된 인덱스 정보와 부분 연산 결과값이 최종 연산 결과값에서 차지하는 위치 정보 및 각각의 부분 연산 결과값이 연산 수행 중인지를 지시하는 파라미터 등을 포함하는 파라미터를 설정하여 저장할 수 있다.
이러한, 파라미터는, 중계장치 또는 클라이언트 장치 또는 RPC 서버가 저장 장치에 접속하여 연산 작업을 수행 또는 결과값을 인식할 경우 빠르게 해당 정보를 확인할 수 있도록 해주는 효과가 있다.
예를 들어 구체적으로 설명하면, 각 데이터 세트별로 설정된 파라미터(114)의 일부 필드 값이 1로 설정된 경우 해당 부분 연산 결과값이 저장장치(110)에 저장된 것을 의미할 수 있으며, -1로 설정된 경우 해당 부분 연산 결과값이 저장되지 않은 것을 의미할 수 있다. 만약, 0으로 설정되면, 해당 부분 연산이 RPC 서버(140)에 의해서 수행 중이라는 의미를 포함할 수 있다.
또한, 전술한 바와 같이, 파라미터는 중계 장치 내에 저장될 수 있으며, 저장 장치 및 중계 장치 모두에 저장될 수도 있다.
본 발명의 일 실시예에 따른, 중계장치가 상기 제1 결과값을 확인하여 제1 응답 프로토콜을 전송하는 단계(S804)에 있어서, 제1 결과값이 상기 저장 장치에 저장된 경우, 상기 제1 결과값 및 상기 제1 결과값의 저장위치에 대한 인덱스 정보 중 하나 이상의 정보를 포함하는 상기 제1 응답 프로토콜을 상기 클라이언트 장치로 전송하고, 제1 결과값이 저장되지 않은 경우, 상기 RPC 서버로 상기 제1 결과값 생성을 위한 연산 작업 요청 정보를 포함하는 상기 호출 프로토콜을 전송하는 단계를 포함할 수 있다.
도 2에서 살펴본 바와 같이 중계 장치가 제1 응답 프로토콜을 전송하는 단계(S804)에 있어서, 중계 장치는 제1 결과값의 저장 여부를 확인 및 판단하고, 제1 결과값이 저장된 경우에는 클라이언트 장치로 제1 결과값에 대한 정보가 포함된 제1 응답 프로토콜을 전송하고, 제1 결과값이 저장되지 않은 것으로 판단된 경우에는 RPC 서버로 제1 결과값 연산을 위한 호출 프로토콜을 전송하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른, 중계장치가 제1 결과값을 확인하여 전송하는 단계(S804)에 있어서, 제1 결과값이 저장되지 않은 경우, 상기 파라미터 정보에 기초하여 최종 연산 결과값에서 상기 제1 결과값이 차지하는 위치 주변의 부분 연산 결과값들의 대푯값, 평균값, 중간값 및 최빈값 중 적어도 하나 이상의 값에 대한 정보를 포함하는 제3 응답 프로토콜을 상기 클라이언트 장치로 전송하는 단계를 포함할 수 있다.
도 6에서 살펴본 바와 같이 중계 장치는 제1 응답 프로토콜을 전송하는 단계에 있어서, 제1 결과값이 저장되지 않은 것으로 판단되면, 파라미터 정보를 이용하여 제1 결과값 주변에 분포한 주변 값을 확인하고, 이를 기초로 대푯값, 평균값, 중간값 및 최빈값 중 적어도 하나 이상의 값을 포함하는 제3 응답 프로토콜을 클라이언트 장치로 전송하는 단계를 포함할 수 있다.
여기서, 주변 값의 범위 및 주변 값을 이용하여 대푯값, 평균값, 중간값 및 최빈값 등을 구하는 방법은 미리 설정되어 저장된 정보에 의하거나, 제1 요청 프로토콜에 포함되어 전송될 수도 있다.
또한, 본 발명의 일 실시예에 따른, 중계장치가 상기 제1 결과값을 확인하여 전송하는 단계에 있어서, 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트 장치로부터 상기 제1 결과값에 대한 제2 요청 프로토콜이 수신되면, 상기 연산 작업 수행 중이라는 정보를 포함하는 제2 응답 프로토콜을 전송하는 단계를 포함하고, 다른 클라이언트 장치는 폴링방식에 따라서 확인하는 단계를 포함할 수 있다.
도 5에서 살펴본 바와 같이, 중계 장치가 제1 결과값 확인 결과 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트가 연산 작업 완료 전에 동일한 제1 결과값에 대한 확인을 요청하면, 연산 작업 수행 중이라는 정보를 포함하는 제2 응답 프로토콜을 전송하는 단계 및 연산 작업이 완료되어 제1 결과값이 완료되면, 다른 클라이언트 장치의 폴링 방식에 따른 확인 단계를 포함할 수 있다.
위에서 언급한 폴링 방식에 따른 확인 단계는, 다른 클라이언트 장치가 제2 요청 프로토콜로 요청했던 제1 결과값 정보의 상태 변화에 대한 조회를 신청하고, 중계 장치가 제1 결과값이 저장되지 않았으면, 종료 코드를 송신하며, 제1 결과값이 저장된 경우에는 제1 결과값에 대한 정보가 포함된 제1 응답 프로토콜을 전송할 수 있다.
이 때, 폴링 방식에 따라 일정 시간 간격 또는 순번에 따라 다른 클라이언트 장치가 확인하는 경우, 해당 일정 시간 간격 또는 순번에 대한 정보는 미리 설정된 값이거나 제2 응답 프로토콜에 포함되어 전송된 값일 수 있다.
이상에서 설명한 바와 같이 본 발명에 의하면, 저장 장치가 연산 결과값에 대한 저장 여부 및 연산 수행 중인지 여부에 대한 파라미터를 생성하여 저장하고, 중계장치가 클라이언트 장치 또는 RPC 서버의 요청에 따라서 상기 파라미터를 확인하여 요청받은 결과값을 전송하거나 RPC 서버에 요청받은 결과값 생성을 위한 작업 요청을 전송하는 데이터 연산 방법 및 시스템을 제공하는 효과가 있다.
또한, 본 발명에 의하면, 중계장치가 요청 결과값 확인 시, 요청된 연산 결과값 주변의 값으로부터 대푯값 및 평균값 등을 확인하여 제공하고, 이후 결과값의 연산이 종료되면 요청받은 결과값을 제공하여 빠르게 요청받은 결과값을 우선 제공하여 빠른 데이터 연산을 제공하는 효과가 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 데이터, 상기 데이터에 기초하여 연산된 최종 또는 부분 연산 결과값 및 상기 최종 또는 부분 연산 결과값에 대한 상태 정보를 포함하는 파라미터를 저장하는 저장 장치;
    사용자의 입력 정보에 기초하여 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 신호를 전송하는 클라이언트 장치;
    상기 제1 요청 신호를 수신하고 상기 저장 장치에 접속하여 상기 요청 정보를 확인한 후 제1 응답 신호를 상기 클라이언트 장치로 전송하는 중계장치; 및
    상기 중계장치의 호출 신호에 따라 상기 저장 장치에 접속하여 연산 작업을 수행하는 하나 이상의 RPC(Remote Procedure Call) 서버를 포함하는 데이터 연산 시스템.
  2. 제 1 항에 있어서,
    상기 저장 장치는,
    연산 작업을 수행하는데 필요한 전체 또는 일부의 상기 데이터를 하나의 데이터 세트로 설정하여 저장하고, 상기 데이터 세트에 대해서 연산 프로시저를 설정하는 것을 특징으로 하는 데이터 연산 시스템.
  3. 제 1 항에 있어서,
    상기 저장 장치는,
    상기 최종 또는 부분 연산 결과값 각각의 저장 여부 정보, 상기 저장 장치에 저장된 위치 정보, 상기 부분 연산 결과값이 상기 최종 연산 결과값에서 차지하는 위치 정보 및 연산 작업 수행 상태 정보 중 하나 이상의 정보를 포함하는 상기 파라미터를 설정하여 저장하는 것을 특징으로 하는 데이터 연산 시스템.
  4. 제 1 항에 있어서,
    상기 중계 장치는,
    상기 파라미터를 저장하고, 상기 제1 요청 신호를 수신하면, 상기 파라미터에 기초하여 상기 제1 응답 신호를 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  5. 제 1 항에 있어서,
    상기 중계장치는,
    상기 파라미터에 포함된 정보를 확인하여 상기 제1 결과값이 상기 저장 장치에 저장된 경우, 상기 제1 결과값 및 상기 제1 결과값의 저장위치에 대한 인덱스 정보 중 하나 이상의 정보를 포함하는 상기 제1 응답 신호를 상기 클라이언트 장치로 전송하고,
    상기 제1 결과값이 저장되지 않은 경우, 상기 RPC 서버로 상기 제1 결과값 생성을 위한 연산 작업 요청 정보를 포함하는 상기 호출 신호를 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  6. 제 5 항에 있어서,
    상기 중계장치는,
    상기 제1 결과값이 저장되지 않은 경우 상기 호출 신호에 따라 상기 RPC 서버가 연산한 상기 제1 결과값을 수신하고, 상기 제1 응답 신호를 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  7. 제 5 항에 있어서,
    상기 중계장치는,
    상기 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 상기 RPC 서버에 의한 계산이 완료된 후 상기 제1 응답 신호를 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  8. 제 7 항에 있어서,
    상기 중계장치는,
    상기 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트 장치로부터 상기 제1 결과값에 대한 제2 요청 신호가 수신되면, 상기 RPC 서버에 의한 계산이 완료된 후 상기 클라이언트 장치 및 상기 다른 클라이언트 장치로 상기 제1 응답 신호를 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  9. 제 7 항에 있어서,
    상기 중계장치는,
    상기 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트 장치로부터 상기 제1 결과값에 대한 제2 요청 신호가 수신되면, 상기 연산 작업 수행 중이라는 정보를 포함하는 제2 응답 신호를 전송하고,
    상기 다른 클라이언트 장치는 폴링방식에 따라서 확인하는 것을 특징으로 하는 데이터 연산 시스템.
  10. 제 5 항에 있어서,
    상기 중계장치는,
    최종 연산 결과값이 이미지이고, 상기 제1 결과값이 상기 이미지를 구성하는 특정 부분에 대한 이미지 값일 때,
    상기 저장 장치에 상기 제1 결과값이 저장되지 않은 경우에 상기 파라미터 정보에 기초하여, 상기 최종 연산 결과값인 상기 이미지 상에서 상기 특정 부분의 주변에 위치하는 부분에 대응되는 이미지 값인, 부분 연산 결과값들의 대푯값, 평균값, 중간값 및 최빈값 중 적어도 하나 이상의 값에 대한 정보를 포함하는 제3 응답 신호를 상기 클라이언트 장치로 전송하되,
    상기 부분 연산 결과값들은 상기 저장 장치에 이미 저장된 것을 특징으로 하는 데이터 연산 시스템.
  11. 제 10 항에 있어서,
    상기 중계장치는,
    상기 제3 응답 신호를 상기 클라이언트 장치로 전송한 후, 상기 제1 결과값이 상기 RPC 서버로부터 수신되면 상기 제1 결과값 정보를 포함하는 상기 제1 응답 신호를 상기 클라이언트 장치로 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  12. 제 10 항에 있어서,
    상기 중계장치는,
    상기 제3 응답 신호를 상기 클라이언트 장치로 전송한 후, 상기 제1 결과값이 상기 RPC 서버로부터 수신되면 상기 저장 장치에 저장하고, 상기 클라이언트 장치가 상기 중계장치로 폴링 방식에 따른 확인 시 상기 제1 응답 신호를 전송하는 것을 특징으로 하는 데이터 연산 시스템.
  13. 데이터 연산 시스템이 데이터 연산 작업을 수행하는 방법에 있어서,
    저장 장치가 데이터, 상기 데이터에 기초하여 연산된 최종 또는 부분 연산 결과값 및 상기 최종 또는 부분 연산 결과값에 대한 상태 정보를 포함하는 파라미터를 저장하는 단계;
    클라이언트 장치가 사용자의 입력 정보에 기초하여 제1 결과값에 대한 요청 정보를 포함하는 제1 요청 신호를 전송하는 단계;
    중계 장치가 상기 제1 요청 신호를 수신하고 상기 저장 장치에 접속하여 상기 요청 정보를 확인한 후 제1 응답 신호를 상기 클라이언트 장치로 전송하는 단계; 및
    하나 이상의 RPC(Remote Procedure Call) 서버가 상기 중계장치의 호출 신호에 따라 상기 저장 장치에 접속하여 연산 작업을 수행하는 단계를 포함하는 데이터 연산 작업 수행 방법.
  14. 제 13 항에 있어서,
    상기 데이터 및 파라미터를 저장하는 단계는,
    연산 작업을 수행하는데 필요한 전체 또는 일부의 상기 데이터를 하나의 데이터 세트로 설정하여 저장하는 단계;
    상기 데이터 세트에 대해서 연산 프로시저를 설정하는 단계; 및
    상기 최종 또는 부분 연산 결과값 각각의 저장 여부 정보, 상기 데이터 저장 장치에 저장된 위치 정보, 상기 부분 연산 결과값이 상기 최종 연산 결과값에서 차지하는 위치 정보 및 연산 작업 수행 상태 정보 중 하나 이상의 정보를 포함하는 파라미터를 생성하여 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 연산 작업 수행 방법.
  15. 제 13 항에 있어서,
    상기 중계장치가 상기 제1 결과값을 확인하여 제1 응답 신호를 전송하는 단계에 있어서,
    상기 제1 결과값이 상기 저장 장치에 저장된 경우, 상기 제1 결과값 및 상기 제1 결과값의 저장위치에 대한 인덱스 정보 중 하나 이상의 정보를 포함하는 상기 제1 응답 신호를 상기 클라이언트 장치로 전송하고,
    상기 제1 결과값이 저장되지 않은 경우, 상기 RPC 서버로 상기 제1 결과값 생성을 위한 연산 작업 요청 정보를 포함하는 상기 호출 신호를 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 연산 작업 수행 방법.
  16. 제 15 항에 있어서,
    상기 중계장치가 상기 제1 결과값을 확인하여 전송하는 단계에 있어서,
    최종 연산 결과값이 이미지이고, 상기 제1 결과값이 상기 이미지를 구성하는 특정 부분에 대한 이미지 값일 때,
    상기 저장 장치에 상기 제1 결과값이 저장되지 않은 경우 상기 파라미터 정보에 기초하여, 상기 최종 연산 결과값인 상기 이미지 상에서 상기 특정 부분의 주변에 위치하는 부분에 대응되는 이미지 값인, 부분 연산 결과값들의 대푯값, 평균값, 중간값 및 최빈값 중 적어도 하나 이상의 값에 대한 정보를 포함하는 제3 응답 신호를 상기 클라이언트 장치로 전송하는 단계를 포함하되,
    상기 부분 연산 결과값들은 상기 저장 장치에 이미 저장된 것을 특징으로 하는 데이터 연산 작업 수행 방법.
  17. 제 13 항에 있어서,
    상기 중계장치가 상기 제1 결과값을 확인하여 전송하는 단계에 있어서,
    상기 제1 결과값에 대한 파라미터 정보에 연산 작업 수행 중이라는 정보가 포함된 경우, 다른 클라이언트 장치로부터 상기 제1 결과값에 대한 제2 요청 신호가 수신되면, 상기 연산 작업 수행 중이라는 정보를 포함하는 제2 응답 신호를 전송하는 단계를 포함하고,
    상기 다른 클라이언트 장치는 폴링방식에 따라서 확인하는 단계를 포함하는 것을 특징으로 하는 데이터 연산 작업 수행 방법.
KR1020130088072A 2013-07-25 2013-07-25 데이터 연산 방법 및 시스템 KR101545670B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130088072A KR101545670B1 (ko) 2013-07-25 2013-07-25 데이터 연산 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130088072A KR101545670B1 (ko) 2013-07-25 2013-07-25 데이터 연산 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20150012499A KR20150012499A (ko) 2015-02-04
KR101545670B1 true KR101545670B1 (ko) 2015-08-19

Family

ID=52488535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130088072A KR101545670B1 (ko) 2013-07-25 2013-07-25 데이터 연산 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101545670B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002197007A (ja) * 2000-12-25 2002-07-12 Tdk Corp クライアント・サーバシステムのデータ転送方法、中継サーバ及び記録媒体
KR100438861B1 (ko) 2001-09-06 2004-07-05 오정석 메모리 관리장치를 구비한 전송서버 및 그 방법
KR101035472B1 (ko) 2005-07-14 2011-05-18 야후! 인크. 콘텐츠 라우터
JP5042415B2 (ja) 2001-05-31 2012-10-03 株式会社リコー クライアントサーバシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002197007A (ja) * 2000-12-25 2002-07-12 Tdk Corp クライアント・サーバシステムのデータ転送方法、中継サーバ及び記録媒体
JP5042415B2 (ja) 2001-05-31 2012-10-03 株式会社リコー クライアントサーバシステム
KR100438861B1 (ko) 2001-09-06 2004-07-05 오정석 메모리 관리장치를 구비한 전송서버 및 그 방법
KR101035472B1 (ko) 2005-07-14 2011-05-18 야후! 인크. 콘텐츠 라우터

Also Published As

Publication number Publication date
KR20150012499A (ko) 2015-02-04

Similar Documents

Publication Publication Date Title
WO2021047332A1 (zh) 数据分析方法、装置、设备和存储介质
US10785216B2 (en) Method for accessing network by internet of things device, apparatus, and system
EP3366011B1 (en) Mobile edge compute dynamic acceleration assignment
WO2021088520A1 (zh) 网络数据分析方法、功能实体及电子设备
JP2005130293A (ja) ネットワーク装置管理システム、ネットワーク装置管理装置、およびネットワーク装置管理プログラム
CN106339267B (zh) 一种对象查询方法及服务端
CN107948097B (zh) 一种带宽调整方法及设备
JP6961969B2 (ja) サーバ、サービス提供システム、サービス提供方法及びプログラム
JP6908970B2 (ja) 通信装置とその制御方法及びプログラム
CN114666323A (zh) 基于空中下载技术ota的升级方法、装置及存储介质
EP1607880A1 (en) Decentralized processing control device, decentralized processing control method, decentralized processing control program
JP2017004331A (ja) ゲートウェイおよびこれを用いた車載ソフトウェア更新システム
CN114327710A (zh) 一种函数管理方法、管理装置、终端设备及可读存储介质
KR101545670B1 (ko) 데이터 연산 방법 및 시스템
JP6531730B2 (ja) 通信機器及び通信プログラム
JP5867236B2 (ja) データ収集方法、移動端末およびデータ保存装置
CN113094002B (zh) 消息处理方法、装置、电子设备和计算机介质
US9787527B1 (en) System, method, and computer program for network connectivity policy exchange based on a location of a mobile device
JP2019153194A (ja) 機器管理システム及び機器管理プログラム
EP4302199A2 (en) Media storage for online meetings in edge network storage
JP6320569B2 (ja) 宅内制御装置および宅内制御システム
JP2012079171A (ja) ジョブ実行システム、ジョブ実行装置及びプログラム
KR101339375B1 (ko) 중계서버를 이용한 수강신청 방법 및 그 시스템
WO2015075962A1 (ja) 情報収集システム、サーバ装置、エッジ装置、制御方法、及びプログラム
JP7478713B2 (ja) 遠隔操作装置及びその制御方法、並びにプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 5