KR20170137839A - 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치 - Google Patents

분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20170137839A
KR20170137839A KR1020177032786A KR20177032786A KR20170137839A KR 20170137839 A KR20170137839 A KR 20170137839A KR 1020177032786 A KR1020177032786 A KR 1020177032786A KR 20177032786 A KR20177032786 A KR 20177032786A KR 20170137839 A KR20170137839 A KR 20170137839A
Authority
KR
South Korea
Prior art keywords
time
server
database
application servers
application
Prior art date
Application number
KR1020177032786A
Other languages
English (en)
Other versions
KR102121103B1 (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 알리바바 그룹 홀딩 리미티드
Publication of KR20170137839A publication Critical patent/KR20170137839A/ko
Application granted granted Critical
Publication of KR102121103B1 publication Critical patent/KR102121103B1/ko

Links

Images

Classifications

    • G06F17/30575
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/208Input by product or record sensing, e.g. weighing or scanner processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • 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/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 출원은 전자 기술의 분야에 관한 것으로, 특히, 분산형 시스템에서 시간 도메인에 걸친 일관성(cross-time domain consistency)을 구현하기 위한 방법 및 장치에 관한 것이다. 그 방법은: 설정된 목표 시간에 따라 애플리케이션 서버의 시간을 동기화하는 것; 계산을 통해, 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하고, 시간 오프셋을 애플리케이션 서버로 전송하는 것; 및 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 시간 오프셋에 따라, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어 내의 시간 함수를 수정하는 것을 포함한다. 본 출원의 기술적 솔루션은 필요에 따라 금융 서비스 시뮬레이션을 유연하게 수행할 수 있고, 유저 및 금융 기관의 정보 보안을 보장하기 위해 미래의 기간에서의 계정의 상태를 획득할 수 있다.

Description

분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치
본 출원은 전자 기술의 분야에 관한 것으로, 특히, 분산형 시스템에서 시간 도메인에 걸친 일관성(cross-time domain consistency)을 구현하기 위한 방법 및 장치에 관한 것이다.
종래의 재무 계산 모델은, 금융 데이터 센터에 기초한, 특정 위치에서 데이터 센터를 지리적으로 분산시킨 중앙 집중식 컴퓨팅 아키텍쳐이다. 각각의 특정한 위치의 데이터 센터는 일부 영역에서만 데이터 계산 및 프로세싱을 처리한다. 비록 금융 데이터 센터에 기초한 종래의 중앙 집중식 컴퓨팅 아키텍쳐가 현존하는 은행 서비스의 프로세싱을 제대로 완료할 수 있지만, 분산형 아키텍쳐 및 금융 클라우드 계산 모델의 부재 및 동적인 개발 및 탄력적인 애플리케이션 지원의 부재로 인해 새로운 기관(institution) 및 새로운 금융 서비스의 개발에 대한 요건을 제대로 충족할 수 없다.
상기의 문제점으로 지향되는 경우, 종래 기술의 분산형 금융 시스템은 상기의 문제점을 잘 해결할 수 있다. 그러나 분산형 시스템에서 서비스 시뮬레이션(예를 들면, 대출 서비스의 시뮬레이션)을 수행하는 경우, 상이한 애플리케이션 서버의 시간이 동기적이지 않고 데이터베이스의 시간을 애플리케이션 서버의 시간과 동기화하는 것이 불가능할 때, 서비스 시뮬레이션이 원활하게 완료될 수 없다는 문제점이 발생한다.
본 출원의 실시형태의 목적은, 데이터베이스 서버의 시간을 수정하는 것이 데이터베이스 장애로 이어진다는 그리고 데이터베이스 서버와 애플리케이션 서버 사이의 시간 일관성을 획득하는 것이 불가능하고, 결과적으로 서비스 시뮬레이션이 완료될 수 없다는 종래 기술의 문제점을 해결하기 위한 방법 및 장치를 제공하는 것이다. 분산형 시스템, 특히 금융 분야에서의 서비스 시뮬레이션을 포함하는 애플리케이션 시나리오의 경우, 본 출원의 기술적 솔루션은 필요에 따라 유연하게 금융 서비스 시뮬레이션을 수행할 수 있고, 서비스 생성 시간과 회계 시간(accounting time) 사이의 일관성을 보장하고, 따라서 서비스 생성 시간과 회계 시간 사이의 불일치성(inconsistency)이 서비스 장애로 이어지지 않는 것을 보장한다.
본 출원의 실시형태는 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법을 제공하는데, 그 방법은:
설정된 목표 시간에 따라 애플리케이션 서버의 시간을 동기화하는 것;
계산을 통해, 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하고, 시간 오프셋을 애플리케이션 서버로 전송하는 것; 및
분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 시간 오프셋에 따라, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작(operation) 명령어 내의 시간 함수를 수정하는 것을 포함한다.
본 출원의 실시형태는 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치를 제공하는데, 그 장치는:
설정된 목표 시간에 따라 애플리케이션 서버의 시간을 동기화하도록 구성되는 애플리케이션 서버 동기화 유닛;
계산을 통해, 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하도록, 그리고 시간 오프셋을 애플리케이션 서버로 전송하도록 구성되는 시간 오프셋 계산 유닛; 및
분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 시간 오프셋에 따라, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어 내의 시간 함수를 수정하도록 구성되는 시간 함수 수정 유닛을 포함한다.
본 출원의 실시형태에서 제공되는 상기의 기술적 솔루션으로부터, 데이터베이스 서버의 시간을 빈번하게 수정하는 것이 데이터베이스 장애를 초래하고 그 결과 서비스 시뮬레이션이 완료될 수 없다는 종래 기술의 문제점이 해결될 수 있다는 것을 알 수 있다. 분산형 시스템, 특히 금융 분야에서의 서비스 시뮬레이션을 포함하는 애플리케이션 시나리오의 경우, 본 출원의 기술적 솔루션은 필요에 따라 유연하게 금융 서비스 시뮬레이션을 수행할 수 있고, 서비스 생성 시간과 회계 시간(accounting time) 사이의 일관성을 보장하고, 따라서 서비스 생성 시간과 회계 시간 사이의 불일치성(inconsistency)이 서비스 장애로 이어지지 않는 것을 보장한다.
당연히, 본 출원을 구현하는 임의의 제품 또는 방법은 상기의 모든 이점을 동시에 달성할 필요는 없을 수도 있다.
종래 기술 또는 본 출원의 실시형태의 기술적 솔루션을 더욱 명확하게 설명하기 위해, 하기에서는, 실시형태 또는 종래 기술에 대한 설명에서 사용될 첨부의 도면이 간단히 소개될 것이다. 이하의 설명에서 첨부의 도면은 본 출원에서 설명되는 몇몇 실시형태에 불과하다는 것이 명백하다. 기술 분야에서 통상의 지식을 가진 자는 창조적인 노력을 기울이지 않고도 이들 첨부의 도면에 따라 다른 수반하는 도면을 추가로 획득할 수도 있다.
도 1은 본 출원의 실시형태에 따른 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법의 플로우차트이다;
도 2는 본 출원의 실시형태에 따른 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치의 개략적인 구조도이다;
도 3은 본 출원의 실시형태에 따른 금융 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 시스템의 개략적인 구조도이다; 그리고
도 4는 본 출원의 실시형태에 따른 분산형 금융 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법의 플로우차트이다.
본 출원의 실시형태는 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치를 제공한다.
기술 분야의 숙련된 자가 본 출원의 기술적 솔루션을 더 잘 이해하게 만들기 위해, 본 출원의 실시형태의 기술적 솔루션은, 본 출원의 실시형태에서 첨부의 도면을 참조하여 하기에서 명확하고 완전하게 설명될 것이다. 설명된 실시형태는 본 출원의 실시형태의, 전부가 아닌, 일부에 불과하다는 것은 명백하다. 본 출원의 실시형태에 기초하여, 창의적인 노력을 하지 않고도 기술 분야에서 통상의 지식을 가진 자에 의해 획득되는 모든 다른 실시형태는 본 출원의 보호 범위 내에 있어야 한다.
도 1은 본 출원의 실시형태에 따른 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법의 플로우차트이다.
도 1은 분산형 금융 시스템에서 발생하는 시간 비동기화의 문제에 대해 제안되는 본 출원의 기술적 솔루션을 도시한다. 서비스 시뮬레이션이 수행되는 경우, 서비스 시뮬레이션을 구현하기 위해, 모든 서비스에 수반되는 데이터베이스 및 애플리케이션 서버의 서비스 시간이 동기화될 수 있다. 예를 들면, 금융 시스템에서 몇몇 유저의 계정의 보안을 체크하기 위해서는, 설정된 시간(이것은 일반적으로 미래의 시간임) 내에 서비스를 시뮬레이팅하고 유저의 계정을 조작하여, 설정된 시간 내에 유저의 계정의 상태를 체크하는 것이 필요하다.
이 실시형태의 도면은 다음을 포함한다:
단계 101: 애플리케이션 서버의 시간은 설정된 목표 시간에 따라 동기화된다.
단계 102: 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋이 계산을 통해 얻어지고, 시간 오프셋은 애플리케이션 서버로 전송된다.
단계 103: 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어 내의 시간 함수가 시간 오프셋에 따라 수정된다.
본 출원의 실시형태로서, 애플리케이션 서버는 서비스 시뮬레이션에서의 서비스에 관련되는 애플리케이션 서버를 포함하고, 데이터베이스 서버는 서비스 시뮬레이션에서의 서비스에 관련되는 데이터베이스 서버를 포함한다. 구현 시나리오에서, 분산형 시스템은 분산된 방식으로 설정되는 다수의 애플리케이션 서버 및 데이터베이스 서버를 포함할 수도 있다. 서비스 시뮬레이션이 수행되는 경우, 예를 들면, 대출 서비스의 시뮬레이션이 수행되는 경우, 대출 서비스에 관련되는 애플리케이션 서버 및 대응하는 데이터베이스 서버만을 수반하는 것이 필요하고, 대출 서비스의 시뮬레이션과 관계 없는 다른 애플리케이션 서버 및 데이터베이스 서버의 시간은 동기화될 필요가 없다. 당연히, 분산형 시스템 내의 모든 애플리케이션 서버 및 데이터베이스 서버의 시간이 또한 동기화될 수도 있다.
본 출원의 실시형태로서, 애플리케이션 서버는 분산형 시스템 내에 다수의 애플리케이션 서버를 포함하고, 데이터베이스 서버는 분산형 시스템 내에 하나 이상의 데이터베이스 서버를 포함한다.
본 출원의 실시형태로서, 설정된 목표 시간에 따라 애플리케이션 서버의 시간을 동기화하는 것은 구체적으로 다음의 것을 더 포함한다: 하나의 애플리케이션 서버를 시간 서버로서 선택하는 것, 시간 서버의 시간을 목표 시간으로 조정하는 것, 및 시간 서버의 시간을 기준으로 삼는 것에 의해 나머지 애플리케이션 서버의 시간을 시간 서버의 시간과 동기화하는 것.
옵션적인 실시형태로서, 목표 시간을 동기화의 대상으로 삼고, 시스템 시간을 조정하는 제어 명령어 또는 스크립트를 서비스에 관련되는 애플리케이션 서버로 직접적으로 전송하고, 서비스에 관련되는 모든 애플리케이션 서버의 시간을 동기화하는 것이 가능하다, 즉, 애플리케이션 서버의 시간 동기화는, 하나의 애플리케이션 서버를 시간 서버로서 선택하지 않고도 구현될 수 있다.
본 출원의 실시형태로서, 시간 서버의 시간을 기준으로 삼는 것에 의해 나머지 애플리케이션 서버의 시간을 시간 서버의 시간과 동기화하는 것은 다음의 것을 더 포함한다: 시간 간격을 한 싸이클로 취하는 것에 의해 나머지 애플리케이션 서버의 시간을 시간 서버의 시간과 동기화하는 것. 시간 간격은 10분, 15분, 또는 등등일 수도 있다. 애플리케이션 서버의 하드웨어 사이의 차이로 인해, 시간이 지남에 따라, 애플리케이션 서버의 시간은 일 회의 동기화 이후에 서로 동기화되지 않을 수도 있다. 이 시점에서, 애플리케이션 서버의 시간을 주기적으로 동기화하는 것은 시간 동기화의 정확성을 보장할 수 있어서, 시간 오프셋의 후속하는 계산을 용이하게 한다.
본 출원의 실시형태로서, 계산을 통해, 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하고, 시간 오프셋을 애플리케이션 서버로 전송하는 것은 더 구체적으로 다음의 것을 포함한다: 데이터베이스 서버의 시간을 취득하는(acquiring) 것, 목표 시간으로부터 데이터베이스 서버의 시간을 감산하여 시간 오프셋을 획득하는 것, 및 시간 오프셋을 애플리케이션 서버로 푸싱(pushing)하는 것. 데이터베이스 시간 오프셋 명령어를 획득하는 애플리케이션 서버가 데이터베이스 SQL 명령어를 실행할 때, 애플리케이션 서버는 SQL 명령어 내의 시간 함수에 대해 시간 오프셋을 수행할 수도 있고, 따라서, 데이터베이스 서버의 시간(즉, 시간 SQL 명령어로부터 취득되는 시간)에 의존하는 것에 의해, 데이터베이스 서버의 시간을 수정하지 않고도, 데이터베이스 서버의 시간과 애플리케이션 서버의 시간 사이의 일관성을 달성하게 된다.
데이터베이스 서버의 시간은 종래 기술에서 데이터베이스의 시간을 취득하는 명령어를 통해 획득될 수도 있다. 예를 들면, 금융 서비스는 SQL 명령어인 select now() from dual을 통해 데이터베이스 서버의 시간을 서비스 시간으로서 취득한다. SQL에서, now()는 데이터베이스 시간 함수이다. 종래 기술에서, 시간을 취득하는 명령어는 상이한 데이터베이스의 경우 다를 수도 있는데, 이것은 본원에서는 더 이상 설명되지 않는다.
본 출원의 실시형태로서, 시간 오프셋에 따라, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어 내의 시간 함수는 구체적으로 다음의 것을 더 포함한다: 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어에서의 서비스에 관련되는 시간 함수를 수정하는 것.
애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어는 여러 개의 시간 함수를 포함할 수도 있다. 본 출원에서는, 서비스 시뮬레이션과 관련되는 시간 함수를 수정하거나 대체하는 것만이 필요로 되며, 한편 모든 시간 함수를 수정하는 것은 필요하지 않다. 시간 함수에 대한 수정은, 데이터베이스 조작 명령어 내의 시간 함수에 시간 오프셋을 추가하여 수정된 시간을 획득하는 것일 수도 있다.
본 출원의 실시형태에서의 방법을 통해, 데이터베이스 서버의 시간을 빈번하게 수정하는 것이 데이터베이스 장애로 이어지고 그 결과 서비스 시뮬레이션이 완료될 수 없다는 종래 기술의 문제점이 해결될 수 있다. 분산형 시스템, 특히 금융 분야의 서비스 시뮬레이션을 수반하는 애플리케이션 시나리오의 경우, 본 출원의 기술적 솔루션은 필요에 따라 유연하게 금융 서비스 시뮬레이션을 수행할 수 있고, 미래의 기간에서의 계정의 상태를 확보할 수 있으며, 따라서 유저 및 금융 기관의 정보 보안을 보장한다.
도 2는 본 출원의 실시형태에 따른 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치의 개략적인 구조도이다.
도면은 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치의 구조를 도시한다. 도 1의 실시형태의 방법이 장치에서 구현되는 경우, 예를 들면, 시간 오프셋을 계산하도록 그리고 데이터베이스 조작 명령어 내의 시간 함수를 수정하도록 구성되는 컴포넌트 및 등등은 모두, 대응하는 기능을 구현하는 소프트웨어 또는 하드웨어 논리 회로를 통해 구현될 수도 있고, 애플리케이션 서버에 통합될 수도 있고, 상기의 기능을 완료하도록 하나 이상의 컴퓨터가 개별적으로 또한 제공될 수도 있다.
장치는, 설정된 목표 시간에 따라 애플리케이션 서버의 시간을 동기화하도록 구성되는 애플리케이션 서버 동기화 유닛(201),
계산을 통해, 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하도록, 그리고 시간 오프셋을 애플리케이션 서버로 전송하도록 구성되는 시간 오프셋 계산 유닛(202); 및
분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 시간 오프셋에 따라, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어 내의 시간 함수를 수정하도록 구성되는 시간 함수 수정 유닛(203)을 포함한다.
본 출원의 실시형태로서, 애플리케이션 서버는 서비스 시뮬레이션에서의 서비스에 관련되는 애플리케이션 서버를 포함하고, 데이터베이스 서버는 서비스 시뮬레이션에서의 서비스에 관련되는 데이터베이스 서버를 포함한다.
본 출원의 실시형태로서, 애플리케이션 서버는 분산형 시스템 내에 다수의 애플리케이션 서버를 포함하고, 데이터베이스 서버는 분산형 시스템 내에 하나 이상의 데이터베이스 서버를 포함한다.
본 출원의 실시형태로서, 애플리케이션 서버 동기화 유닛(201)은 구체적으로, 하나의 애플리케이션 서버를 시간 서버로서 선택하도록, 시간 서버의 시간을 목표 시간으로 조정하도록, 그리고 시간 서버의 시간을 기준으로 삼는 것에 의해 나머지 애플리케이션 서버의 시간을 시간 서버의 시간과 동기화하도록 구성된다.
본 출원의 실시형태로서, 장치는, 시간 간격 - 애플리케이션 서버 동기화 유닛(201)은 시간 간격을 한 싸이클로 취하는 것에 의해 나머지 애플리케이션 서버의 시간을 시간 서버의 시간과 동기화함 - 을 제공하도록 구성되는 타이머(204)를 더 포함한다.
본 출원의 실시형태로서, 시간 오프셋 계산 유닛(202)은 구체적으로, 데이터베이스 서버의 시간을 취득하도록, 목표 시간으로부터 데이터베이스 서버의 시간을 감산하여 시간 오프셋을 획득하도록, 그리고 시간 오프셋을 애플리케이션 서버로 푸싱하도록 구성된다.
본 출원의 실시형태로서, 시간 함수 수정 유닛(203)은 구체적으로, 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어에서의 서비스에 관련되는 시간 함수를 수정하도록 구성된다.
본 출원의 실시형태에서의 장치를 통해, 데이터베이스 서버의 시간을 빈번하게 수정하는 것이 데이터베이스 장애로 이어지고 그 결과 서비스 시뮬레이션이 완료될 수 없다는 종래 기술의 문제점이 해결될 수 있다. 분산형 시스템, 특히 금융 분야의 서비스 시뮬레이션을 수반하는 애플리케이션 시나리오의 경우, 본 출원의 기술적 솔루션은 필요에 따라 유연하게 금융 서비스 시뮬레이션을 수행할 수 있고, 미래의 기간에서의 계정의 상태를 확보할 수 있으며, 따라서 유저 및 금융 기관의 정보 보안을 보장한다.
도 3은 본 출원의 실시형태에 따른 금융 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 시스템의 개략적인 구조도이다.
이 실시형태에서, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하는 솔루션이 구현되는 방식은, 예로서 재무 애플리케이션 시나리오를 취하는 것에 의해 설명된다. 분산형 금융 시스템은 다음의 것을 포함한다: 시뮬레이팅된 금융 서비스(301). 시뮬레이팅된 금융 서비스(301)는, 애플리케이션 서버(302), 애플리케이션 서버(303) 및 데이터베이스 서버(304)에 각각 관련된다. 애플리케이션 서버(302)는 서비스 시뮬레이션 동안 시간 기준으로서 기능하도록 시간 서버로서 설정된다. 애플리케이션 서버(302) 및 애플리케이션 서버(303)뿐만 아니라 데이터베이스 서버(304)는 모두 서비스 시뮬레이션과 관련되는 디바이스이다. 전체 분산형 금융 시스템은 다른 애플리케이션 서버 또는 데이터베이스 서버를 더 포함한다.
그 예에서, 본 출원의 장치는 애플리케이션 서버(302) 및 애플리케이션 서버(303)에 분산되거나 또는 별개의 컴퓨터이다. 기술 분야의 숙련된 자는, 본 출원의 장치가, 대응하는 기능을 구현하는 소프트웨어 모듈일 수도 있고, 또한, 공간적 위치에 위치되는 장치에 제한되지 않는, 대응하는 기능을 구현하는 논리 회로일 수도 있다는 것을 이해할 수 있다. 장치는 또한, 기능 유닛 또는 모듈의 형태로 분산형 금융 시스템 내의 관련 서버에 분산될 수도 있거나, 또는 서버의 기저의 프레임워크 구조일 수도 있다.
이 실시형태에서, 분산형 금융 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법의 플로우차트가 도 4에 도시되어 있는데, 여기서 애플리케이션 서버(302)는 시간 서버로서 설정되고, 다른 애플리케이션 서버의 시간은, 애플리케이션 서버(302)의 시간을 기준으로 하는 것에 의해 동기화될 필요가 있다.
도 3 및 도 4를 참조하면, 금융 서비스의 시뮬레이션(대출 서비스의 시뮬레이션)에서 미래의 시간(목표 시간)으로 서비스 시간이 조정될 필요가 있는 경우, 예를 들면, 목표 시간이 2015년 4월 2일 15시 30분이고, 애플리케이션 서버(302)의 시간이 2015년 4월 1일 15시 30분이고, 애플리케이션 서버(303)의 시간이 2015년 4월 1일 15시 32분이고, 데이터베이스 서버의 시간이 2015년 4월 1일 15시 33분인 경우, 데이터베이스 서버(304)에 새로운 이자 데이터를 추가할 필요가 있다.
단계 401: 대출 서비스의 목표 시간 및 시뮬레이션이 설정 정보에 따라 결정된다.
이 단계에서, 마우스 또는 키보드와 같은 입력 디바이스를 사용하여 유저에 의해 입력되는 설정 정보에 따라 대출 서비스의 목표 시간 및 시뮬레이션이 결정될 수도 있고, 그 결과 대출 서비스의 시뮬레이션과 관련되는 애플리케이션 서버 및 데이터베이스 서버는 서비스 시뮬레이션의 이름 및 관련 디바이스의 리스트와 유사한 방식으로 획득될 수도 있다. 본 출원의 기술적 솔루션을 간단하게 설명하기 위해, 대출 서비스에 관련되는 애플리케이션 서버는 애플리케이션 서버(302) 및 애플리케이션 서버(303)이고, 관련된 데이터베이스 서버는 데이터베이스 서버(304)이고, 시간 서버는 애플리케이션 서버(302)이다.
단계 402: 목표 시간은 시간 서버로 전송되고, 시간 서버는 시스템 시간을 목표 시간으로 조정한다. 이 예에서, 애플리케이션 서버(302)는 2015년 4월 2일 15시 30분으로 시스템 시간을 15:30을 조정한다.
단계 403: 애플리케이션 서버는 시간 서버의 시간을 획득하고, 자기 자신의 시스템 시간을 시간 서버의 시간과 동기화시킨다.
이 단계에서, 애플리케이션 서버(303)는 시간 서버의 시간을 능동적으로 취득할 수도 있고, 따라서 시간 동기화를 구현할 수도 있고, 시간 서버는 또한, 애플리케이션 서버(303)에게 시간에 따라 시간 동기화를 수행할 것을 지시하기 위해, 시간 서버의 시간을 포함하는 시간 동기화 명령어를 애플리케이션 서버(303)로 능동적으로 전송할 수도 있다.
구체적으로, 애플리케이션 서버(303)는 자기 자신의 시간 2015년 4월 1일 15시 32분을, 시간 서버의 시간, 즉 2015년 4월 2일 15시 30으로 동기화한다.
단계 404: 애플리케이션 서버는 주기적으로 시간 서버와의 시간 동기화를 수행한다.
이 단계에서, 애플리케이션 서버(303)는 자신의 타이머에 따라 시간 간격을 계산할 수도 있다. 시간 간격이 경과할 때마다, 애플리케이션 서버(303)는, 시간 동기화를 수행하기 위해, 시간 서버로부터 시간을 능동적으로 취득하거나, 또는 시간 서버는 시간 간격을 계산하기 위한 타이머를 구비하며, 시간 간격이 경과할 때마다, 시간 동기화를 수행할 것을 애플리케이션 서버(303)에게 지시하기 위해, 시간 서버는 시간을 포함하는 동기화 명령어를 애플리케이션 서버(303)로 능동적으로 전송한다.
구체적으로, 10분 후에, 애플리케이션 서버(303)의 동기화된 시간은 2015년 4월 2일 15:41이다. 이 단계의 방식으로, 애플리케이션 서버는 시간 간격으로서 10 분을 취하는 것에 의해 시간 서버와 동기화된다. 이 시점에서, 시간 서버의 시간은 2015년 4월 2일 15시 40분이고, 동기화 후 애플리케이션 서버(303)의 시간은 2015년 4월 2일15시 40분이다.
단계 405: 시간 서버 및 데이터베이스 서버의 시간이 취득된다.
데이터베이스 서버의 시간은, 데이터베이스 서버(304)에 시간 취득 명령어, 예를 들면, 데이터베이스 명령어인 select now() from dual을 전송하는 것에 의해 취득될 수도 있다. 명령어는 데이터베이스 서버의 시간을 취득한다.
이 예에서 데이터베이스 서버의 시간은 위에서 설명한 대로 2015년 4월 1일 15시 33분이며, 시간 서버의 시간은 2015년 4월 2일 15시 30분이다.
단계 406: 시간 오프셋을 획득하기 위해, 시간 서버의 시간과 데이터베이스 서버의 시간 사이의 차이가 계산된다.
구체적으로, 시간 서버의 시간이 2015년 4월 2일 15시 30분이고 데이터베이스 서버의 시간이 2015년 4월 1일 15시 33분이다는 것에 따라, 시간 오프셋은 23시간 57분이다는 것이 획득된다.
단계 407: 시간 오프셋은, 서비스 시뮬레이션에 관련되는 애플리케이션 서버로 푸싱된다.
이 단계에서 시간 오프셋은, 대출 서비스의 시뮬레이션에 관련되는 모든 애플리케이션 서버에 푸싱되도록 다중 스레드 방식으로 포함된다. 이 예에서는, 애플리케이션 서버(302)와 애플리케이션 서버(303)만이 존재하고, 애플리케이션 서버(302)는 시간 서버이다. 시간 오프셋이 시간 서버 상에서 계산되는 경우, 이 단계에서, 애플리케이션 서버(303)로 푸싱될 스레드에 시간 오프셋을 포함시키는 것만이 필요하다. 대출 서비스의 시뮬레이션이 다른 애플리케이션 서버에 추가적으로 관련되는 경우, 시간 오프셋은 다중 스레드 방식으로 관련된 모든 애플리케이션 서버로 동시에 푸싱될 수도 있다. 서비스에 관련되는 애플리케이션 서버는, 서비스 시간이 데이터베이스 서버의 시간에 의존해야 하는 분산형 시스템의 애플리케이션 서버를 포함한다.
단계 405 내지 단계 407은 별개의 디바이스 상에서 수행될 수도 있고, 또한 애플리케이션 서버(303) 상에서 수행될 수도 있다. 바람직한 실시형태로서, 상기 단계는 시간 서버 상에서 수행될 수도 있다.
단계 408: 서비스 시뮬레이션에 관련되는 애플리케이션 서버에 의해 생성되는 데이터베이스 조작 명령어 내의 시간 함수가 수정된다.
서비스 시뮬레이션이, 이 실시형태에서는, 대출에 대한 매일의 이자를 생성할 수도 있는 대출 서비스의 시뮬레이션이기 때문에, 애플리케이션 서버(303)는 데이터베이스에 이자 발생 레코드(interest bearing record)를 추가하는 데이터베이스 조작 명령어를 생성한다. 데이터베이스 조작 명령어는 이자 발생의 시간 함수, 예를 들면, select now() from dual을 포함한다. 데이터베이스 조작 명령어 내의 시간 함수, 즉, select DATE_ADD(now(),INTERVAL A MINUTE) from dual가 수정되는데, 여기서, now() 함수는 데이터베이스 서버의 시간을 취득하는 함수이고, INTERVAL A MINUTE는 시간 오프셋이고, DATE_ADD()는 데이터베이스의 시간에 시간 오프셋을 더하는 함수이고, dual은 데이터베이스 테이블이다. 시간 오프셋이 수행될 때 임의의 소망하는 시간이 시뮬레이팅될 수 있다는 것을 알 수 있다.
애플리케이션 서버는, 데이터베이스 조작 명령어 내의 시간 함수 메소드 이름을 식별하는 방식으로 어떤 시간 함수가 수정될 필요가 있는지를 결정할 수도 있는데, 예를 들면, OB 및 mysql의 시간 함수는: now()/current_time()/current_timestamp()/strict_current_timestamp() 및 등등이고, 시간 함수는 시간 오프셋을 필요로 하는 시간 함수 및 시간 오프셋을 필요로 하지 않는 시간 함수의 구성을 유연하게 지원할 수 있다. 이 경우, 데이터베이스에 기록되는 서비스 시간과 애플리케이션 서버의 시간의 동기화는, 데이터베이스 서버의 시간을 변경하지 않고도 구현될 수 있는데, 이것은 금융 서비스의 시뮬레이션 동안 시간 도메인에 걸친 일관성을 보장한다.
다른 실시형태에서, 다수의 데이터베이스 서버 및 다수의 애플리케이션 서버가 서비스 시뮬레이션에 수반되고, 몇몇 애플리케이션 서버가 하나 이상의 데이터베이스 서버에서 동작을 수행할 필요가 있고, 각각의 데이터베이스 서버의 시간이 상이할 수도 있으면, 단계 405에서, 모든 데이터베이스 서버의 시간 및 시간 서버의 시간을 획득하는 것이 필요하다.
단계 406에서, 시간 서버의 시간과 다수의 데이터베이스 서버의 시간 사이의 차이가 각각 계산되어 다수의 시간 오프셋을 획득하고, 각각의 시간 오프셋과 대응하는 데이터베이스 서버 사이의 매칭 관계가 기록된다.
단계 407에서, 서비스 시뮬레이션 및 대응하는 데이터베이스 서버에 관련되는 애플리케이션 서버에 따라, 애플리케이션 서버에 대응하는 시간 오프셋이 푸싱된다.
이 단계에서, 하나의 애플리케이션 서버는 여러 개의 데이터베이스 서버에 데이터베이스 조작 명령어를 전송하는 것을 필요로 할 수도 있고, 데이터베이스 서버로 전송되는 데이터베이스 조작 명령어 내의 시간 함수는 모두 상이하게 수정될 필요가 있다, 즉, 데이터베이스 서버 A의 시간과 목표 시간 사이의 시간 오프셋은 A이고, 데이터베이스 서버 B의 시간과 목표 시간 사이의 시간 오프셋은 B이고, 데이터베이스 서버 C의 시간과 목표 시간 사이의 시간 오프셋은 C이고, 그리고 상이한 시간 오프셋은 애플리케이션 서버로 전송된다.
단계 408: 애플리케이션 서버에 의해 상이한 데이터베이스 서버로 전송되는 데이터베이스 조작 명령어 내의 시간 함수는 대응하는 시간 오프셋에 따라 수정된다.
구체적으로는, 애플리케이션 서버에 의해 데이터베이스 서버 A로 전송되는 데이터베이스 조작 명령어 내의 시간 함수는 시간 오프셋 A에 따라 수정되고, 애플리케이션 서버에 의해 데이터베이스 서버 B로 전송되는 데이터베이스 조작 명령어 내의 시간 함수는 시간 오프셋 B에 따라 수정되고, 그리고 애플리케이션 서버에 의해 데이터베이스 서버 C로 전송되는 데이터베이스 조작 명령어 내의 시간 함수는 시간 오프셋 C에 따라 수정된다.
본 출원의 실시형태에서의 방법 및 장치를 통해, 분산형 시스템에서의 시간 조정 및 스위칭이, 특히 재무 레벨 분산형 시스템에서의 서비스 시뮬레이션에 대해 구현될 수 있고, 데이터베이스 서버의 장애가 방지될 수도 있고, 그 결과, 금융 시스템의 데이터 및 정보의 보안성이 검출될 수 있다.
기술에 대한 향상은, 하드웨어에 대한 개선(예를 들면, 다이오드, 트랜지스터, 및 스위치와 같은 회로 구조체에 대한 개선) 또는 소프트웨어에 대한 개선(메소드 프로시져에 대한 개선)으로 분명히 구별될 수도 있다. 그러나, 기술의 발달과 함께, 현재의 많은 메소드 프로시져에 대한 개선은, 하드웨어 회로 구조체의 직접적인 개선으로 간주될 수도 있다. 거의 모든 설계자는, 대응하는 하드웨어 회로 구조체를 획득하기 위해, 개선된 메소드 프로시져를 하드웨어 회로 안으로 프로그래밍한다. 따라서, 메소드 프로시져에 대한 개선은 하드웨어 엔티티 모듈을 사용하는 것에 의해 구현될 수 없다는 것이 가정될 수 없다. 예를 들면, 프로그래머블 논리 디바이스(Programmable Logic Device; PLD)(예를 들면, 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA))는 이러한 집적 회로이고, 그 논리 기능은, 자신의 디바이스를 프로그래밍하는 것을 통해 유저에 의해 결정된다. 설계자는, 전용 집적 회로 칩 2를 설계 및 제조할 것을 칩 제조자에게 권유하지 않고도, 디지털 시스템을 PLD의 조각(piece) 안으로 "통합"하도록 스스로 프로그래밍한다. 또한, 현재, 프로그래밍은, 집적 회로 칩을 수동으로 제조하는 대신, "논리 컴파일러" 소프트웨어를 사용하는 것에 의해 대부분 구현된다. 그 소프트웨어는, 프로그램을 개발하고 작성하기 위해 사용되는 소프트웨어 컴파일러와 유사하며, 컴파일 전의 오리지널 코드도 또한, 하드웨어 기술 언어(Hardware Description Language; HDL)로 칭해지는 특정한 프로그래밍 언어로 작성될 필요가 있다. ABEL(Advanced Boolean Expression Language; 고급 불린 표현 언어), AHDL(Altera Hardware Description Language; 알테라 하드웨어 기술 언어), Confluence(컨플루언스), CUPL(Cornell University Programming Language; 코넬대 프로그래밍 언어), HDCal, JHDL(Java Hardware Description Language; 자바 하드웨어 기술 언어), Lava(라바), Lola(롤라), MyHDL, PALASM, 및 RHDL(Ruby Hardware Description Language; 루비 하드웨어 기술 언어)과 같은 많은 타입의 HDL이 존재하는데, 이들 중에서도, VHDL (Very-High-Speed Integrated Circuit Hardware Description Language; 초고속 집적 회로 하드웨어 기술 언어) 및 Verilog2가 현재 가장 일반적으로 사용된다. 기술 분야의 숙련된 자는 또한, 논리 메소드 프로시져를 구현하기 위한 하드웨어 회로가, 단지 상기 여러가지 하드웨어 기술 언어를 사용하여 메소드 프로시져를 약간 논리적으로 프로그래밍하고 그것을 집적 회로에 프로그래밍하는 것에 의해 쉽게 획득될 수도 있다는 것을 알아야 한다.
컨트롤러는 임의의 적절한 방식으로 구현될 수도 있다. 예를 들면, 컨트롤러는, 예를 들면, 마이크로프로세서 또는 프로세서 및 (마이크로)프로세서에 의해 실행 가능한 컴퓨터 판독 가능 프로그램 코드(예를 들면, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터 판독 가능 매체, 논리 게이트, 스위치, 주문형 반도체(Application Specific Integrated Circuit; ASIC), 프로그래머블 논리 컨트롤러, 및 임베딩된 마이크로 컨트롤러의 형태일 수도 있다. 컨트롤러의 예는 다음의 마이크로 컨트롤러를 포함하지만 그러나 이들로 제한되는 것은 아니다: ARC 625D, Atmel(아트멜) AT91SAM, Microchip(마이크로칩) PIC18F26K20, 및 Silicone Labs(실리콘 랩스) C8051F320. 메모리 컨트롤러는 또한 메모리의 제어 논리의 일부로서 구현될 수도 있다.
기술 분야의 숙련된 자는 또한, 순수한 컴퓨터 판독가능 프로그램 코드를 사용하는 것에 의해 컨트롤러를 구현하는 것 외에, 메소드 단계는, 컨트롤러가 동일한 기능을 논리 게이트, 스위치, 주문형 반도체, 프로그래머블 논리 컨트롤러 및 임베딩된 마이크로컨트롤러의 형태로 구현하는 것을 가능하게 하도록 논리적으로 프로그래밍될 수도 있다는 것을 이해한다. 따라서, 이러한 컨트롤러는 하드웨어 컴포넌트로 간주될 수도 있고, 그 안에 포함되며 다양한 기능을 구현하도록 구성되는 장치는 또한, 하드웨어 컴포넌트 내부의 구조체로서 간주될 수도 있다. 대안적으로, 추가적으로, 다양한 기능을 구현하도록 구성되는 장치는, 메소드를 구현하기 위한 소프트웨어 모듈 및 하드웨어 컴포넌트 내부의 구조체 둘 다로서 간주될 수도 있다.
상기 실시형태에서 예시되는 시스템, 장치, 모듈 또는 유닛은, 구체적으로는, 컴퓨터 칩 또는 엔티티, 또는 소정의 기능을 갖는 제품을 사용하는 것에 의해 구현될 수도 있다.
설명의 용이성을 위해, 장치가 설명될 때, 그것은 각각의 설명을 위해 기능의 관점에서 다양한 단위로 분할된다. 당연히, 본 출원이 구현될 때, 그 단위의 기능은 동일한 또는 다수의 소프트웨어 및/또는 하드웨어에서 구현될 수도 있다.
구현 방식의 상기 설명에 기초하여, 기술 분야의 숙련된 자는, 소프트웨어 및 필요한 범용 하드웨어 플랫폼에 의해 본 출원이 구현될 수도 있다는 것을 명확히 이해할 수도 있다. 이러한 이해에 기초하여, 본질적으로 본 출원의 기술적 솔루션, 또는 종래 기술에 기여하는 일부분은 소프트웨어 제품의 형태로 구체화될 수도 있다. 컴퓨터 소프트웨어 제품은, ROM/RAM, 자기 디스크 또는 광학 디스크와 같은 저장 매체에 저장될 수도 있고, 컴퓨터 디바이스(이것은 퍼스널 컴퓨터, 서버, 네트워크 디바이스, 또는 등등일 수도 있다)가 본 출원의 실시형태 또는 실시형태의 소정의 부분에서 메소드를 실행하는 것을 가능하게 하는 여러가지 명령어를 포함한다.
본 명세서의 실시형태는 점진적으로 설명되고, 실시형태의 동일한 또는 유사한 부분은 서로를 참조하여 획득될 수도 있으며, 그리고 각각의 실시형태는 다른 실시형태와는 상이한 부분을 강조한다. 특히, 시스템 실시형태는 기본적으로 방법 실시형태와 유사하고, 따라서 그것은 간단히 설명된다. 관련된 부분에 대해, 방법 실시형태의 부분의 설명을 참조한다.
본 출원은 다양한 범용 또는 전용 컴퓨터 시스템 환경 또는 구성, 예컨대, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 디바이스 또는 휴대형 디바이스, 태블릿 디바이스, 멀티 프로세서 시스템, 마이크로 프로세서 기반 시스템, 셋톱 박스, 프로그래머블 소비자 전자 장치, 네트워크 PC, 미니컴퓨터, 메인 프레임 컴퓨터, 및 상기 시스템 또는 디바이스 중 임의의 것을 포함하는 분산형 컴퓨팅에 적용 가능하다.
본 출원은 컴퓨터에 의해 실행되는 컴퓨터 실행 가능 명령어, 예를 들면, 프로그램 모듈의 공통의 맥락에서 설명될 수도 있다. 일반적으로, 프로그램 모듈은, 특정 태스크를 실행하기 위한 또는 특정 추상 데이터 타입을 구현하기 위한 루틴, 프로그램, 오브젝트, 어셈블리, 데이터 구조체, 및 등등을 포함한다. 본 출원은 또한 분산형 컴퓨팅 환경에서도 실시될 수도 있고, 분산형 컴퓨팅 환경에서는, 통신 네트워크를 통해 연결되는 원격 프로세싱 디바이스를 사용하는 것에 의해 태스크가 실행된다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은, 스토리지 디바이스를 포함하는 로컬 또는 원격 컴퓨터 저장 매체에 위치될 수도 있다.
비록 본 출원이 실시형태를 통해 설명되었지만, 기술 분야에서 통상의 지식을 가진 자는, 본 출원이 본 출원의 취지를 벗어나지 않고도 많은 변동예 및 변화예를 갖는다는 것을 알아야 하며, 첨부된 청구범위는 본 출원의 취지를 벗어나지 않으면서 그 변동예 및 변형예를 포괄한다는 것이 기대된다.

Claims (14)

  1. 분산형 시스템에서 시간 도메인에 걸친 일관성(cross-time domain consistency)을 구현하기 위한 방법으로서,
    설정된 목표 시간에 따라 애플리케이션 서버들의 시간들을 동기화하는 단계;
    계산을 통해, 상기 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하고, 상기 시간 오프셋을 상기 애플리케이션 서버들로 전송하는 단계; 및
    상기 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 상기 시간 오프셋에 따라, 상기 애플리케이션 서버들에 의해 생성되는 데이터베이스 조작(operation) 명령어들 내의 시간 함수들을 수정하는 단계
    를 포함하는, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  2. 제1항에 있어서,
    상기 애플리케이션 서버들은 상기 분산형 시스템 내의 다수의 애플리케이션 서버들을 포함하고, 상기 데이터베이스 서버는 상기 분산형 시스템 내의 하나 이상의 데이터베이스 서버를 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  3. 제2항에 있어서,
    상기 애플리케이션 서버들은 서비스 시뮬레이션에서의 서비스들에 관련되는 애플리케이션 서버들을 포함하고, 상기 데이터베이스 서버는 상기 서비스 시뮬레이션에서의 상기 서비스들에 관련되는 데이터베이스 서버들을 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  4. 제3항에 있어서,
    상기 설정된 목표 시간에 따라 애플리케이션 서버들의 시간들을 동기화하는 단계는 구체적으로, 하나의 애플리케이션 서버를 시간 서버로서 선택하는 것, 상기 시간 서버의 시간을 상기 목표 시간으로 조정하는 것, 및 상기 시간 서버의 시간을 기준으로 삼는 것에 의해 나머지 애플리케이션 서버들의 시간들을 상기 시간 서버의 시간과 동기화하는 것을 더 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  5. 제4항에 있어서,
    상기 시간 서버의 시간을 기준으로 삼는 것에 의해 상기 나머지 애플리케이션 서버들의 시간들을 상기 시간 서버의 시간과 동기화하는 단계는, 시간 간격을 한 싸이클로 취하는 것에 의해 상기 나머지 애플리케이션 서버들의 시간들을 상기 시간 서버의 시간과 동기화하는 것을 더 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  6. 제3항에 있어서,
    상기 계산을 통해, 상기 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하고, 상기 시간 오프셋을 상기 애플리케이션 서버들로 전송하는 단계는 구체적으로, 상기 데이터베이스 서버의 시간을 취득하는 것, 상기 목표 시간으로부터 상기 데이터베이스 서버의 시간을 감산하여 상기 시간 오프셋을 획득하는 것, 및 상기 시간 오프셋을 상기 애플리케이션 서버들로 푸싱(pushing)하는 것을 더 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  7. 제3항에 있어서,
    상기 시간 오프셋에 따라, 상기 애플리케이션 서버들에 의해 생성되는 데이터베이스 조작 명령어들 내의 시간 함수들을 수정하는 단계는 구체적으로, 상기 애플리케이션 서버들에 의해 생성되는 상기 데이터베이스 조작 명령어들에서의 서비스들에 관련되는 시간 함수들을 수정하는 것을 더 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법.
  8. 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치로서,
    설정된 목표 시간에 따라 애플리케이션 서버들의 시간들을 동기화하도록 구성되는 애플리케이션 서버 동기화 유닛;
    계산을 통해, 상기 목표 시간과 데이터베이스 서버의 시간 사이의 시간 오프셋을 획득하도록, 그리고 상기 시간 오프셋을 상기 애플리케이션 서버들로 전송하도록 구성되는 시간 오프셋 계산 유닛; 및
    상기 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위해, 상기 시간 오프셋에 따라, 상기 애플리케이션 서버들에 의해 생성되는 데이터베이스 조작 명령어들 내의 시간 함수들을 수정하도록 구성되는 시간 함수 수정 유닛
    을 포함하는, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
  9. 제8항에 있어서,
    상기 애플리케이션 서버들은 상기 분산형 시스템 내의 다수의 애플리케이션 서버들을 포함하고, 상기 데이터베이스 서버는 상기 분산형 시스템 내의 하나 이상의 데이터베이스 서버를 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
  10. 제9항에 있어서,
    상기 애플리케이션 서버들은 서비스 시뮬레이션에서의 서비스들에 관련되는 애플리케이션 서버들을 포함하고, 상기 데이터베이스 서버는 상기 서비스 시뮬레이션에서의 서비스들에 관련되는 데이터베이스 서버들을 포함하는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
  11. 제10항에 있어서,
    상기 애플리케이션 서버 동기화 유닛은 구체적으로, 하나의 애플리케이션 서버를 시간 서버로서 선택하도록, 상기 시간 서버의 시간을 상기 목표 시간으로 조정하도록, 그리고 상기 시간 서버의 시간을 기준으로 삼는 것에 의해 나머지 애플리케이션 서버들의 시간들을 상기 시간 서버의 시간과 동기화하도록 구성되는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
  12. 제11항에 있어서,
    시간 간격 - 상기 애플리케이션 서버 동기화 유닛은 상기 시간 간격을 한 싸이클로 취하는 것에 의해 상기 나머지 애플리케이션 서버들의 시간들을 상기 시간 서버의 시간과 동기화함 - 을 제공하도록 구성되는 타이머를 더 포함하는, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
  13. 제10항에 있어서,
    상기 시간 오프셋 계산 유닛은 구체적으로, 상기 데이터베이스 서버의 시간을 취득하도록, 상기 목표 시간으로부터 상기 데이터베이스 서버의 시간을 감산하여 상기 시간 오프셋을 획득하도록, 그리고 상기 시간 오프셋을 상기 애플리케이션 서버들로 푸싱하도록 구성되는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
  14. 제10항에 있어서,
    상기 시간 함수 수정 유닛은 구체적으로, 상기 애플리케이션 서버들에 의해 생성되는 상기 데이터베이스 조작 명령어들에서의 서비스들에 관련된 시간 함수들을 수정하도록 구성되는 것인, 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 장치.
KR1020177032786A 2015-04-17 2016-03-25 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치 KR102121103B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510183965.3A CN106157129B (zh) 2015-04-17 2015-04-17 一种实现分布式系统跨时域一致性方法及装置
CN201510183965.3 2015-04-17
PCT/CN2016/077303 WO2016165544A1 (zh) 2015-04-17 2016-03-25 一种实现分布式系统跨时域一致性方法及装置

Publications (2)

Publication Number Publication Date
KR20170137839A true KR20170137839A (ko) 2017-12-13
KR102121103B1 KR102121103B1 (ko) 2020-06-10

Family

ID=57125555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177032786A KR102121103B1 (ko) 2015-04-17 2016-03-25 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치

Country Status (9)

Country Link
US (1) US10547401B2 (ko)
EP (1) EP3285180B1 (ko)
JP (1) JP6679618B2 (ko)
KR (1) KR102121103B1 (ko)
CN (1) CN106157129B (ko)
ES (1) ES2811300T3 (ko)
PL (1) PL3285180T3 (ko)
SG (1) SG11201708413YA (ko)
WO (1) WO2016165544A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109741165A (zh) * 2018-12-18 2019-05-10 中信百信银行股份有限公司 一种金融系统的数据处理方法及电子设备
CN110007713B (zh) * 2019-04-16 2020-07-31 中国人民解放军国防科技大学 跨时钟域信号动态调整检查参数的时序检查方法及系统
CN110413693B (zh) * 2019-07-31 2020-04-03 上海英方软件股份有限公司 一种数据库实时同步系统数据一致性的检验方法及装置
CN110990381B (zh) * 2019-12-02 2023-08-15 珠海格力电器股份有限公司 服务器的处理方法及装置、存储介质和电子装置
CN112540897B (zh) * 2020-12-08 2023-08-25 上海达梦数据库有限公司 一种数据库监控方法、装置、服务器及介质
CN116528337A (zh) * 2022-01-22 2023-08-01 华为技术有限公司 业务协同方法、电子设备、可读存储介质和芯片系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263105A1 (en) * 2007-04-17 2008-10-23 Hitachi, Ltd. Method for analyzing data and data analysis apparatus
KR20110077168A (ko) * 2009-12-30 2011-07-07 재단법인 광양만권 유아이티연구소 유비쿼터스 센서 네트워크를 기반으로 한 산업용 자동화 네트워크 시스템 및 그 실시간동기화 방법
KR20140098602A (ko) * 2013-01-31 2014-08-08 한국전자통신연구원 분산 시뮬레이션 수행 시스템 및 방법
JP2014225112A (ja) * 2013-05-16 2014-12-04 日本電信電話株式会社 分散データストリーム管理システム及び方法及びプログラム
CN104202204A (zh) * 2014-09-26 2014-12-10 浙江中控技术股份有限公司 基于sntp的时钟同步控制方法、装置及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790805A (en) * 1996-04-23 1998-08-04 Ncr Corporation Distributed timer synchronization
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US6446092B1 (en) * 1996-11-01 2002-09-03 Peerdirect Company Independent distributed database system
JP2006236251A (ja) * 2005-02-28 2006-09-07 Fujitsu Ltd タイムスタンプ装置、時刻校正方法および時刻校正プログラム
JP4648181B2 (ja) * 2005-12-16 2011-03-09 富士通株式会社 データ解析装置、データ解析方法、及びそのプログラム
CN101493826B (zh) * 2008-12-23 2012-12-19 中兴通讯股份有限公司 基于web应用的数据库系统及其数据管理方法
JP5436311B2 (ja) * 2010-04-02 2014-03-05 三菱電機株式会社 情報表示システム、情報コンテンツ配信サーバおよびディスプレイ装置
CN102238719B (zh) * 2010-04-27 2014-10-08 中国移动通信集团公司 时间同步方法、装置及分布式时间同步系统
CN102693324B (zh) * 2012-01-09 2015-03-18 西安电子科技大学 一种分布式数据库同步系统、同步方法和节点管理方法
CN103116544A (zh) * 2013-01-25 2013-05-22 浪潮电子信息产业股份有限公司 一种自动化的跨平台多服务器多应用测试方法
US9823640B2 (en) * 2013-03-14 2017-11-21 Control Technology Corporation Networked programmable industrial controllers
CN104243515A (zh) * 2013-06-13 2014-12-24 中兴通讯股份有限公司 一种配置信息处理方法及装置
CN103763055B (zh) * 2013-10-18 2016-05-18 杭州联汇数字科技有限公司 一种精确同步时间的方法
US10171635B2 (en) * 2013-12-04 2019-01-01 Cloudera, Inc. Ensuring properly ordered events in a distributed computing environment
CN103763142B (zh) * 2014-01-23 2016-10-26 电子科技大学 多模异构dtn网络模拟验证系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263105A1 (en) * 2007-04-17 2008-10-23 Hitachi, Ltd. Method for analyzing data and data analysis apparatus
KR20110077168A (ko) * 2009-12-30 2011-07-07 재단법인 광양만권 유아이티연구소 유비쿼터스 센서 네트워크를 기반으로 한 산업용 자동화 네트워크 시스템 및 그 실시간동기화 방법
KR20140098602A (ko) * 2013-01-31 2014-08-08 한국전자통신연구원 분산 시뮬레이션 수행 시스템 및 방법
JP2014225112A (ja) * 2013-05-16 2014-12-04 日本電信電話株式会社 分散データストリーム管理システム及び方法及びプログラム
CN104202204A (zh) * 2014-09-26 2014-12-10 浙江中控技术股份有限公司 基于sntp的时钟同步控制方法、装置及系统

Also Published As

Publication number Publication date
CN106157129A (zh) 2016-11-23
SG11201708413YA (en) 2017-11-29
EP3285180A4 (en) 2018-10-17
WO2016165544A1 (zh) 2016-10-20
EP3285180A1 (en) 2018-02-21
JP6679618B2 (ja) 2020-04-15
US10547401B2 (en) 2020-01-28
PL3285180T3 (pl) 2020-11-16
KR102121103B1 (ko) 2020-06-10
US20180041298A1 (en) 2018-02-08
EP3285180B1 (en) 2020-08-12
ES2811300T3 (es) 2021-03-11
CN106157129B (zh) 2020-02-07
JP2018513492A (ja) 2018-05-24

Similar Documents

Publication Publication Date Title
KR102121103B1 (ko) 분산형 시스템에서 시간 도메인에 걸친 일관성을 구현하기 위한 방법 및 장치
TWI748175B (zh) 資料的處理方法、裝置及設備
US8683430B2 (en) Synchronizing development code and deployed executable versioning within distributed systems
JP6865219B2 (ja) 連続クエリ処理におけるイベントバッチ処理、出力シーケンス化、およびログベースの状態記憶
US10817501B1 (en) Systems and methods for using a reaction-based approach to managing shared state storage associated with a distributed database
US11934772B2 (en) Providing synchronous and asynchronous general user interface (GUI) input
US9141685B2 (en) Front end and backend replicated storage
Sakr Cloud-hosted databases: technologies, challenges and opportunities
CN109101627A (zh) 异构数据库同步方法及装置
TWI694342B (zh) 一種資料快取方法、裝置及系統
JP2022002091A (ja) 画像編集モデルの構築方法及び装置
AU2019201821B2 (en) Generating an execution script for configuration of a system
US20190057335A1 (en) Targeted data element detection for crowd sourced projects with machine learning
US9304838B1 (en) Scheduling and executing model components in response to un-modeled events detected during an execution of the model
US11615076B2 (en) Monolith database to distributed database transformation
US20160139888A1 (en) Automated app generation system
CN105159831A (zh) 一种软件代码质量自动监控方法
WO2018177350A1 (zh) 一种提供序列号的方法、装置、电子设备和可读存储介质
CN110502415A (zh) 一种埋点设置方法、装置及设备
WO2023087764A1 (zh) 算法应用元的打包方法及装置、设备、存储介质和计算机程序产品
US20140172488A1 (en) Synthesis of a schedule representation from a process model
Daubert et al. A models@ runtime framework for designing and managing service-based applications
Khan Hadoop performance modeling and job optimization for big data analytics
CN111951788A (zh) 一种语言模型的优化方法、装置、电子设备及存储介质
Arkhipkin et al. STAR Online Meta-Data Collection Framework: Integration with the Pre-existing Controls Infrastructure

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