[go: up one dir, main page]

KR900005883B1 - 분산 처리 시스템과 그 방법 - Google Patents

분산 처리 시스템과 그 방법 Download PDF

Info

Publication number
KR900005883B1
KR900005883B1 KR1019870003083A KR870003083A KR900005883B1 KR 900005883 B1 KR900005883 B1 KR 900005883B1 KR 1019870003083 A KR1019870003083 A KR 1019870003083A KR 870003083 A KR870003083 A KR 870003083A KR 900005883 B1 KR900005883 B1 KR 900005883B1
Authority
KR
South Korea
Prior art keywords
message
processing
data
transmission path
event number
Prior art date
Legal status (The legal status 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 status listed.)
Expired
Application number
KR1019870003083A
Other languages
English (en)
Other versions
KR870010448A (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
Priority claimed from JP61076522A external-priority patent/JP2656471B2/ja
Priority claimed from JP61173642A external-priority patent/JP2585541B2/ja
Application filed by 가부시끼가이샤 히다찌세이사꾸쇼, 미다 가쓰시게 filed Critical 가부시끼가이샤 히다찌세이사꾸쇼
Publication of KR870010448A publication Critical patent/KR870010448A/ko
Application granted granted Critical
Publication of KR900005883B1 publication Critical patent/KR900005883B1/ko
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

내용 없음.

Description

분산 처리 시스템과 그 방법
제1도는 본 발명의 실시예의 시스템 구성을 도시한 블럭도.
제2도, 제10a도는 본 실시예로 전송되는 메시지 포메트를 도시한 도면.
제3도는 본 발명의 처리장치의 구성을 도시한 도면.
제4a,b도는 상기 처리장치의 입출력 데이터 격납 에리어를 도시한 도면.
제5a,b도는 본 발명의 동작을 도시한 흐름도.
제6a도∼제8b도는 본 발명인 프로세스 로그 방법에 대해서 설명하기 위한 설명도.
제9도, 제10b,c도는 프로세스 로그 모듈의 처리 흐름을 도시한 흐름도.
제11a,b도는 본 발명에 있어서의 전체의 동작의 흐름을 도시한 동작 설명도.
제12도는 본 발명을 실시하는 시스템의 시스템 구성도.
제13도는 본 발명에 있어서 전송되는 메시지의 포메트를 도시한 도면.
제14a,b도는 테이블의 구성을 도시한 도면.
제15도∼제18도는 본 발명의 각 처리장치내에서의 처리 흐름을 도시한 도면.
본 발명은, 여러개의 처리장치에 의해 일련의 처리를 분산하여 실행하는 분산 처리 시스템에 대해, 그 고장 진단(trouble shooting)을 효율적으로 행하여 동일한 처리에 속하는 다중 데이터를 식별하는 것을 가능하게 하기 위한 분산 처리 시스템과 그 방법에 관한 것이다.
전송로를 거쳐서 접속된 여러개의 처리장치에 의해, 일련의 처리를 분산하여 처리하는 분산 처리 방법에 있어서, 일련의 처리의 각각을 실행하기 위한 프로그램을 각 처리장치에 분산 기억시키고, 각 처리장치의 프로그램의 기동을, 이 프로그램을 실행하는데 필요한 데이터가 전송로에서 자기 장치내로 수신되어, 그것이 갖추어졌을 때에 행하는 방법에 대해서는 본 발명 출원인의 출원에 관한 발명, 미국 특허 제4627055호 공보에 기술되어 있다. 이 방법은 시스템 전체를 관리하기 위한 관리용 처리장치를 필요로 하는 일없이, 각 처리장치로 일련의 처리의 각각을 분산해서 처리하는 것을 가능하게 하는 것이지만, 이상 발생시, 그 이상 원인을 분석(고장 진단)할 때에 필요로 하는 시스템의 동작 경력등을 수집하여 두기 위한 수단이 없어 시스템 보수성의 면에서 문제가 있었다.
또, 종래 오퍼레이팅(operating) 시스템(OS)에서는 시스템 동작 경력을 수집하기 위한 기능을 가진 것도 있으나, 이것은 상기 OS가 조립되어 있는 처리장치내의 동작 경력만을 대상으로 하는 것으로, 여러개의 처리장치로 분산하여 일련의 처리를 실행하는 분산 처리 시스템의 고장 진단을 행하는 데는 불충분하였었다.
또, 동일한 처리를 실행하는 처리장치가 여러개 존재하는 경우에, 이들 각 처리장치가 송출하는 각각의 처리 실행 결과에서 포터(porter)에 의해 참값을 선출한 후에 참값만을 전송 네트워크(network)로 송출하는 것이 아니고, 상기 처리 실행 결과를 그대로 전송 네트워크상으로 송출하고, 수신쪽의 처리장치에 있어서 네트워크로부터의 수신 메시지중에서 상기의 동일한 처리에 속하는 것을 선택하여, 각 수신쪽의 처리장치내부에서 각각 다수결 논리에 의해, 참값을 선출하는 방법이 일본국 실용신안 공개공보 소화 57-175238에 있어서 개시되어 있다.
상기 방법에서는 일정기간 동일한 기능 코드(cord)(데이터 내용을 표시한 코드)를 가진 메시지를 수집하고, 그 메시지수를 계수한 결과에 따라서 다수결 논리에 의해 참값을 판정한다. 상기 발명은 어떤 처리장치로부터의 출력을 포터에 수신하는가를 사전에 결정하여둘 필요가 없는 유연성이 풍부한 보팅 방식을 부여하는 것이다.
상기 종래 기술에서는, 메시지내에 메시지 내용을 나타내는 코드를 설정하고, 이 코드가 일치하는 것을 동일한 처리에 속하는 메시지로써 한 기간 수집하고, 일정기간이 경과한 후 수집한 메시지에서 다수결 논리에 따라서 참값을 선출하는 방식이 취하여지고 있다. 그러나, 상기 방식에 있어서는, 메시지 내용을 나타내는 코드만에 의해서 동일한 처리에 속하는 메시지를 식별하고 있으므로, 상기 수집 조정기간 이하의 짧은 기간에 틀린 트리거(trigger)에 의해 동일한 처리를 실행하는 처리장치가 기동되었을 경우, 틀린 트리거에 의한 출력 메시지를 식별할 수 없다는 문제가 있었다.
본 발명의 목적은, 시스템 전체를 관리하기 위한 관리용 처리장치를 필요로 하지 않고, 각 처리장치로 일련의 처리의 각각을 분산하여 실행하는 시스템에 있어서, 그 고장 진단을 효율적으로 행하여, 동일한 처리에 속하는 다중 데이터를 식별하는 것을 가능하게 하는 분산 처리 시스템과 그 방법을 제공하는데 있다.
상기 목적을 달성하기 위하여, 본 발명은 전송로에 접속된 여러개의 처리장치에 의해 하나의 일의 일련의 처리를 분산해서 처리하는 분산 처리 시스템에 있어서, 분산 처리에 관여하는 처리장치가 기능 코드를 붙인 정보를 상기 전송로에 송출하는 스텝, 또는 처리장치내에 전송로 상을 흐르는 정보를 그 정보의 기능 코드마다 수신하는 스텝, 각 기능 코드마다 축적한 데이터와 각 처리장치내의 프로그램의 관계를 대응시키는 것에 의해, 일련의 처리의 흐름에 대응한 정보를 수신하는 스텝을 가진 것을 특징으로 한다. 또, 수신한 메시지의 이벤트(event)번호와 과거에 수신한 메시지의 이벤트 번호를 비교하는 것에 의해, 동일한 처리에 속하는 다중 메시지를 검출하는 것을 특징으로 한다.
[실시예]
[제1의 실시예]
다음에 본 발명의 제1의 실시예를 도면에 의해 상세하게 설명한다. 제1도는 본 발명의 방법이 적용되는 제1의 실시예의 시스템의 전체 구성 도면이다. 그리고, 다음의 실시예에서는 각 처리장치를 접속하는 전송로를 1예로써 1줄의 루프 전송계에 한정해서 도시하였으나, 일반직인 네트워크를 사용하여도 처리는 동일하다.
제1도에 있어서, (11)∼(16)은 그 내부의 메모리에 응용프로그램을 격납하여, 이것을 실행하는 처리장치이며, (1)은 화살표 방향으로의 일 방향성 루프 전송로이다. (1001)∼(1006)은 전송로 상의 데이터 전송 제어를 행하는 전송 제어장치(NCP : Network Control Processor)이다. 각 NCP(1001)∼(1006)과 각 처리장치(11)∼(16)은 쌍방향으로 접속되어 있다.
처리장치 (11)∼(16)의 처리 결과(데이터)는 NCP(1001)∼(1006)을 거쳐서 전송로(1)에 송출된다 NCP(1001)∼(1006)은, 전송로(1)상에 흐르는 데이터가 자기에게 접속되어 있는 처리장치에 필요한 것인가, 아닌가를 판정하고, 필요한 것이라고 판정하였을 때에만 자기에게 접속되어 있는 처리장치에 이 데이터를 보낸다. 각 처리장치(11)∼(16)은 그 내부에 기억한 응용프로그램의 실행에 필요한 모든 데이터가 갖추어진 시점에서 이 프로그램을 기동한다. 기동된 프로그램은 상기 데이터를 이용하여 스스로 처리를 실행한다.
본 실시예에서는, 처리장치(14)에서 본 발명의 데이터 로그를 행하는 것으로 하고, CRT 콘솔(14000)과 데이터 로그용 화일(14001)이 접속하고 있다. 또, 처리장치(11)에 외부 입력 기기(10001)과 외부 출력 기기(10002)가 접속되어 있어 (10001)을 통해서 외부 프로세스에서 데이터를 수신하고, (10002)를 통해서 외부 프로세스에 데이터를 출력한다.
제2도에 전송로 상을 흐르는 데이터의 포메트를 도시한다. FC(202)는 기능 코드로 데이터의 내용이나 기능에 대응한 코드이다. 각 NCP는, 본 기능 코드를 초기로 수신 데이터가 자신이 접속되어 있는 처리장치에 필요한 것인가, 아닌가를 판단한다. SA(203)은, 데이터를 발신한 NCP의 어드레스(발신원 어드레스)이며, C(204)는 전송상 필요하게 되는 일련 번호이다. Data(206)은 각 응용프로그램이며, FCS(207)은 틀림검지용 데이터, F(201),(208)은 각각 메시지의 처음과 끝을 나타내는 플래그이다. 또, EN(205)는 처리 레벨의 일련번호이며, 처리장치 번호와 데이터 발생 일련번호로 된다. 이후 이것을 이벤트 번호라고 부른다.
제3도는 제1도에서 도시한 처리장치(11)의 내부 구성을 도시한 도면이다. 처리장치(12)∼(16)도 같은 구성을 취한다. 전송 제어 유니트(101)은 NCP(1001), 처리장치(11) 사이에서의 데이터 전송을 행하는 유니트이며, NCP에서 수신한 데이터를 수신 버퍼(102)에 격납한다. 또, 송신 버퍼(103)내의 데이터를 NCP에 송출함과 동시에, 송신 버퍼(103)내의 데이터를 자체의 처리장치내의 응용프로그램에서 필요로 하는 경우는 수신 버퍼(102)에도 격납한다. 처리 유니트(104)는 응용프로그램(1081)∼(1083)의 실행을 제어하기 위한 유니트이다. 자체 처리장치 번호 격납 에리어(106)은 각 처리장치에 서로가 다르게 할당된 번호를 격납하는 에리어이며, 일련번호 에리어(107)은 데이터 발생수 카운타로써 사용되는 에리어이다. 또, 외부 입력 제어 유니트(109)는 외부기기(10001)로부터의 입력을 수신하기 위한 유니트이다. 또, 외부 입력 FC 대응 테이블(110)은 외부 입력 데이터의 기능 코드가 격납되어 있는 에리어이다. 입출력 데이터 격납 에리어(105)는 각 응용프로그램마다 입출력 데이터를 격납하기 위한 에리어이다. 외부 출력 제어 유니트(111)은 처리장치(11)과 외부 출력 기기(10002) 사이와의 인터페이스를 취하여 외부로 출력하기 위한 유니트이다.
제4a도는 제3도의 입출력 데이터 격납 에리어(105)의 내용을 도시한 것이다. 에리어 1행째(1051)은 응용프로그램(1081)에 대한 입출력 데이터 격납 에리어이며, (10511)에는 입력 데이터가, (10513)에는 출력 데이터가 격납된다.
또, 기동 프로그램 에리어(10512)에는 (10511)에 격납된 입력 데이터에 의해 기동하여야 할 프로그램(즉, (1081))을 나타내는 에리어이다. 2행째(1052)는 응용프로그램(1082)의 입출력 데이터를 격납하는 에리어이다. 이하, 마찬가지로 각 응용프로그램마다 입출력 데이터 격납 에리어와 기동 프로그램 에리어가 취하여진다.
제4b도는 제4a도의 입력 데이터 격납 에리어(10511)의 포메트를 도시한 도면이다. 에리어(105111)에는 입력 데이터의 기능 코드가 사전에 설정되어 있다. 에리어(105112)는 데이터가 격납되어 있는가, 아닌가를 나타내는 플래그를 위한 에리어이며, 에리어(105113)은 이벤트 번호를 격납하기 위한 에리어, (105114)는 실제로 데이터를 격납하기 위한 에리어이다. 그리고, 출력 데이터 격납 에리어도 같은 포메트이다.
제5a도는 처리 유니트(제3도(104))에 있어서의 처리 내용을 도시한 것이다. 수신 버퍼(제3도(102))에서 데이터를 리드하고, 그 FC와 입출력 데이터 격납 에리어(제3도(105))내의 입력 데이터 격납 에리어(10511)내에 설정되어 있는 FC(105111)이 일치하는 에리어에 이벤트 번호(EN), 데이터부(DATA)를 격납한다(501). 다음에 실행 가능한 응용프로그램이 존재하는가, 존재하지 않는가, 즉 프로그램의 실행에 필요한 입력 데이터가 모든 입력 데이터 격납 에리어내에 격납되어 있는가, 아닌가를 판정한다(502). 실행 가능한 프로그램이 존재하는 경우는, 그 프로그램에 대응하는 입력 데이터 격납 에리어내의 이벤트 번호 에리어(EN) 내용을, 그 프로그램에 대응하는 출력 데이터 격납 에리어내의 이벤트 번호 에리어(EN)에 그대로 격납하고(503), 이 프로그램을 실행한다(504). 여기서, 여러개와 다른 이벤트 번호를 가진 입력 데이터에 의해 기동되는 응용프로그램의 경우는, 출력 데이터 격납 에리어의 이벤트 번호 에리어를 사전에 결정된 수만큼 취하여, 모든 입력 데이터의 이벤트 번호를 그대로 출력 데이터 격납 에리어내 이벤트 번호 에리어에 격납하는 것으로 한다. 다만, 사전에 결정된 수를 초과하는 경우는, 예를 들면 오래된 이벤트 번호부터 삭제한다는 것과 같이, 사전에 결정된 기준에 따라서 처리한다. 또, 출력 데이터 격납 에리어내에 응용 프로그램의 출력 데이터가 격납되어 있는 경우는 송신버퍼에 설정한다.
제5b도는, 외부 입력 제어 유니트(제3도(109))의 처리를 도시한 도면이다. 외부 입력 발생시, 외부 입력 제어 유니트는, 외부 입력 FC 대응 테이블(제3도(110))에서 그 입력 데이터의 기능 코드를 판정하여, 송신 버퍼(제3도(103))에 입력 데이터 내용과 외부 입력 FC 테이블에서 판정한 기능 코드를 설정한다(550). 다음에 송신 버퍼내의 이벤트 번호 에리어에 자체의 처리장치 번호 에리어(제3도(106)) 내용과 일련번호 에리어 내용(제3도(107))을 설정한다(551). 그후, 일련번호 에리어 내용을 "1"증분한다(552).
다음에 제6a도∼제10c도에 의해, 본 발명인 프로세스 로그 방식에 대해서 설명한다. 제6a도는 처리장치(제1도(14))내에 조립하는 로깅(logging)용 모듈의 구성을 도시한 것이다. 로깅용 모듈은 로그 데이터를 격납하여 두는 화일(14001), 이 화일에 로그 데이터를 격납하는 프로그램 EA1(601), 그리고, 검색하는 프로그램 EA2(602)로 구성한다. 제6b도는 처리장치(14)내의 입력 데이터 격납 에리어(40511∼405t1) 및 기동 프로그램 에리어(40512-405t2)의 내용을 나타내는 것이다. 프로그램 EA1은 전송로 상을 흐르는 모든 데이터를 수신하여 로깅할 필요가 있으므로, 입력 데이터 격납 에리어(40511)∼(405n1)내에, 시스템내에서 사용하는 모든 기능 코드(FC1∼FCn)(각 기능 코드를 각각 나타냄)를 설정하고, 각각에 대한 기동 프로그램 에리어(40512)∼(405n2)에는 모든 프로그램 EA1을 등록한다. 또, 프로그램 EA2는 기능 코드 FCt를 가진 데이터에 의해 기동되어 로깅 결과를 출력한다(405t1∼405t2).
다음에 제6a도에서 도시한 로깅 모듈의 처리 내용을 제7도 제10도c에 의해 설명한다.
제7도는 제6a도의 로그 데이터 격납 화일(14001)의 내용을 도시한 것이다. 본 화일은 사전에 다음에 제시하는 것과 같이 초기화되어 있는 것으로 한다. 본 화일은 시스템내 프로그램 구성을 나타내는 구조 테이블(7000)과 각 FC 마다의 로깅 에리어(7500)으로 구성한다. 구조 테이블(7000)은 각 처리장치내에 설정되어 있는 응용프로그램과 각 응용프로그램 사이의 입출력 관제를 나타내는 것이다.
구조 테이블은 각 처리장치마다의 테이블(701)∼(706)으로 구성한다. (701)∼(706)은 각각 각 처리장치(제1도(11)∼(16))에 대응하는 것이며, 이들은 각각에 붙여진 일련번호(처리장치 일련번호)에 의해 식별된다. 다음에, 테이블(701)의 구성에 대해서 기술하며 (702)∼(706)도 동일한 구성이다. 테이블(701)은 처리장치(11)(제1도)에 할당된 처리장치 번호를 격납하는 에리어(7011), 처리장치(11)내에 설정되어 있는 프로그램 수를 격납하는 에리어(7012)와 각 프로그램마다의 입출력 데이터 정보를 격납하는 에리어(7013,7014,‥‥‥)로 구성한다. 또, 로깅 에리어(7500)은 시스템내에서 사용되는 FC(FC1∼FCn)마다에, 데이터를 격납하는 버퍼(7501-750n)로 구성한다. 각 버퍼는 사이클링 버퍼(cycling buffer)구성으로 되어 있고, 각 버퍼마다 일련번호(로드 일련번호)가 붙여져 있다. 다음에 구성 테이블내의 입력 데이터 정보(70131), 출력 데이터 정보(70132)의 내용에 대해서 설명한다. 입력 데이터 정보는 입력 FC(701310), 상류 프로그램 포인터(701311), FC 로그 에리어 포인터(701312)로 된다. 상기 프로그램 포인터는, 입력 FC(701310)을 출력하는 프로그램의 구조 테이블내에서의 위치를 나타내는 것이며, 상류 프로그램위치를 나타내는 처리장치 일련번호와 모듈 일련번호로 된다. FC 로그 에리어 포인터(701312)는 입력 FC(701310)을 로깅하고 있는 버퍼의 위치를 나타내는 것이며, 구체적으로는 로그 일련번호가 설정된다. 또, 출력 데이터 정보(70132)도 마찬가지로, 출력 FC(701320), 하류 프로그램 포인터(701312), FC 로그 에리어 포인터(701322)를 구성한다. 여기서 하류 프로그램 포인터(701321)은 출력 FC(701320)을 입력하는 프로그램의 구조 테이블내에서의 위치를 나타내는 것이며, 상류 프로그램 포인터의 경우와 마찬가지로 처리장치 일련번호와 모듈 일련번호로 된다. 이상의 화일에 의해, 각 프로그램의 상류, 하류에 위치하는 프로그램, 즉 프로그램 사이의 관계를 파악할 수가 있으며, 동시에 각 프로그램의 입출력 데이터의 로그 에리어를 참조할 수가 있다.
제8도는, 본 시스템에 조립된 응용프로그램의 1예를 도시한 것이다. 제8도a는 프로그램 사이의 관련을 도식적으로 그린 것이다. 입력 장치 i(10001)을 갖는 처리장치에서 FC1의 기능 코드 및 이벤트 번호 E1을 갖는 데이터(851)이 출력되고, 이 데이터는 프로그램 A1(802) 및 A2(803)의 입력 데이터로 된다. 프로그램 A1은 데이터(851)을 처리하고, 결과로써 기능 코드 FC2 및 이벤트 번호 E1을 갖는 데이터(852)를 출력한다. 프로그램 A2는 데이터(851),(852)를 사용해서 처리를 행하는 기능 코드 FC3 및 이벤트 번호 E1을 갖는 데이터(853)을 출력한다. 데이터(853)은 프로그램 A3(804), A4(805)의 입력 데이터로 된다. 프로그램 A3은 입력 데이터를 그대로 자신이 갖는 화일에 격납한다. 프로그램 A4는 기능 코드 FC4를 갖는 데이터를 출력하고, 이 데이터를 출력 장치 0(10002)를 통해서 외부로 출력한다. 이상의 프로그램 구성을 갖는 시스템에서의 실제의 데이터의 흐름을 도시한 것이 제8b도이다. 여기에서는 제1도에서 도시한 처리장치(12)내에 프로그램 A1이, 처리장치(13),(15),(16)내에 각각 프로그램 A2,A3,A4가 조립되어 있다. 또, 처리장치(14)내에는 로깅 프로그램 EA1,EA2가 조립되어 있다. 본 도면에 있어서, 프로그램 EA1은 전송로 상을 흐르는 모든 데이터(851)∼(854)에 의해 기동하여, 각 데이터를 로그 화일(14001)에 격납한다. 또, 프로그램 EA2는, 예를 들면 CRT(14000)에서의 오퍼레이터 요구에 따라서, 로그 화일(14001)의 내용을 CRT(14000)에 출력한다. 이하에, 프로그램 EA1,EA2의 처리 내용을 제9도∼제10c도에 의해 설명한다.
제9도는 프로그램 EA1(제8도(601))의 처리 내용을 도시하는 도면이다. 프로그램 EA1은 기동시 입력 데이터의 기능 코드를 판정하고(901), 로그 화일(14001)내의 로깅 에리어(제7도(7500))내의 대응하는 기능 코드를 갖는 사이클링 버퍼에 격납한다(902).
제10a,b,c도는 프로그램 EA2(제8도(602))의 처리 내용을 도시하는 도면이다. 먼저, 제10a도에 프로그램 EA2의 기동 데이터 Data부(제2도(206))의 포메트를 도시한다. Data부에는 시스템내의 프로그램을 지정하기 위한 정보로써, 처리장치 번호(2061), 입력 기능 코드(2062), 출력 기능 코드(2063)을 포함한다. 제10b,c도는 프로그램 EA2의 처리를 설명하기 위한 도면이다. 제10a도에 도시한 데이터에 의해 기동한 프로그램 EA2는 먼저 기동 데이터의 데이터부내에 도시되는 프로그램의 구조 테이블(제7도(7000))내에서의 위치를 특정화하여(1101), 카운터 k에 "1"을 대입한다(1102). 다음에 (1101)에서 특정화한 프로그램에 입력 데이터가 있는가, 없는가를 구조 테이블에서 판정하여(1103), 입력 데이터가 있는 경우는, 그 데이터의 기능 코드에 대응하는 FC 로그 에리어(제7도(7500))내 버퍼의 k번째의 데이터를 자체내 에리어로 리드한다(1104). 또한, 여기에서 대상으로 하고 있는 프로그램의 상류에 위치하는 프로그램을 특정화하여(1105), 입력 데이터가 있는가, 없는가를 구조 테이블에서 판정하여(1106), 입력 데이터가 있는 경우는, 그 데이터의 기능 코드에 대응하는 FC 로그 에리어내 버퍼 중에서, (1104)에서 리드한 데이터와 같은 이벤트 번호를 갖는 데이터를 탐색하여, 자체내 에리어로 리드한다(1107). 이 (1105)∼(1107)의 처리를 입력 데이터를 갖지 않는 프로그램이 나타낼때까지 반복한다. 즉, 기동 데이터내 프로그램을 기점으로 하여 상류로 거슬러 올라가서 데이터를 차례로 자체내에 격납한다. (1106)에서 입력 데이터가 존재하지 않게 되었다면, 제10c도의 처리 (1108)로 옮긴다.
즉, 기동 데이터내에 도시된 프로그램의 출력 데이터가 있는가, 없는가를 구조 테이블에서 판정하여, 출력 데이터가 있는 경우는, 그 데이터의 기능 코드에 대응하는 FC 로그 에리어내 버퍼에서 제10b도(1104)에서 리드한 데이터와 동일한 이벤트 번호를 갖는 데이터를 탐색하여 자체내 에리어를 리드한다(1109). 또한, 여기에서 대상으로 하고 있는 프로그램의 하류에 위치하는 프로그램을 특정화하여(1110), 출력 데이터가 있는가, 없는가를 구조 테이블에서 판정하고(1111), 출력 데이터가 있는 경우는 그 데이터의 기능 코드에 대응하는 FC 로그 에리어 버퍼에서 제10b도(1104)에서 리드한 데이터와 동일 이벤트 번호를 갖는 데이터를 탐색하고, 자체내 에리어에 리드한다(1112). 이 (1110)∼(1112)의 처리를 출력 데이터를 갖지 않는 프로그램이 나타날때까지 반복한다. 즉, 기동 데이터내 프로그램을 기점으로 하여, 그 하류로 내려가서 데이터를 차례로 자체내에 격납한다. (1111)에서 출력 데이터가 존재하지 않게 되었다면, 자체내 에리어에 격납한 데이터를 기동 데이터내 프로그램을 중심으로 하여, 그 상류, 하류로 전개하여 CRT에 표시, 또는 프린트 아웃(print out)한다(제10도(b)(1113)). 다음에 카운터 k를 "1"증가시켜(1114), k가 FC 로그 에리어의 기동 데이터 프로그램의 입력 데이터 기능 로드에 대응하는 버퍼내 데이터 수를 초과할때까지(1103)∼(1114)의 처리를 반복한다(1115).
이상 기술한 처리에 의해, 프로그램 EA2의 기동 데이터 내에 저장한 프로그램을 중심으로 하여 그 출력 데이터에 의해 하류 프로그램이 동작하여 출력한 데이터, 또 상류 방향으로 거슬러 올라간 데이터를 관련시킨 로그 데이터를 얻을 수가 있다.
또한, 본 실시예에서는 프로그램 EA2의 기동 데이터는 CRT에서 오퍼레이터가 Key-in 하는 것으로 했지만, 예를들면 처리장치가 자체내 프로그램의 이상을 검지했을 때에, 제10도a의 포메트의 데이터를 전송로 상으로 송출하면, 이상을 검지한 타이밍에서 이상이라고 인식된 프로그램의 상류, 하류의 데이터 로그를 얻을 수가 있다.
또, 본 실시예에서는, 여러개의 데이터로 기동되는 모듈의 경우도, 각각의 입력 데이터의 이벤트 번호가 동일한 경우를 들었지만 이것이 다른 경우도 있다. 이 경우에도 각 이벤트 번호마다 상류로 거슬러 올라가면 좋고, 처리 내용은 변하지 않는다.
또, 프로그램 EA2 기동 데이터내에 프로그램 정보뿐만 아니라, 예를들면 상류만, 하류만, 상류 하류 i번째까지의 로그와 같은 파라미터를 설정하는 것에 의해, 일련의 처리중 필요한 부분만의 로그 경과를 얻는 것이 가능하다.
본 실시예에서는, 데이터 로그 프로그램을 처리장치(14)내에 설정하는 것으로 했지만, 이것은 임의의 처리장치내에, 또 임의의 갯수를 설정하는 것이 가능하다.
이상 본 발명의 데이터 로그 방식의 실시예에 대해서 설명했지만, 본 발명은 이것에 한정하지 않고, 스스로 능동적 기능을 갖는 프로그램쪽 등도 기능 코드를 붙여서 취급하는 것에 의해, 마찬가지 정보 취득 방식으로써 취급할 수가 있어, 본 발명은 정보, 지식의 취득 방식 일반에 적용 가능하다.
본 발명에 의하면, 간단한 시계열 로그는 아니고, 일련의 처리의 흐름에 대응하여, 또는 입출력 관련을 대응시킨 형에서의 정보나 데이터 로그를 얻을 수가 있다. 또, 이 정보를 사용하는 것에 의해 고장 진단을 효율적으로 행하는 것이 가능하게 되어 보수성이 향상된다.
[제2 실시예]
본 발명의 제2의 실시예는 전송로에 접속되어 있는 각 처리장치에, ① 외부 입력 기기에서 수신한 데이터의 경우는 자체 처리장치 및 외부 기기에서의 데이터 리드 순서를 표시하는 정보(이후, 이벤트 번호라고 부름)를 헤더(header)부로, 또 외부에서 수신한 데이터의 내용을 데이터로 갖는 메시지를 생성하여 전송로로 송출하는 수단을 갖는다. 또, ② 전송로에서 수신한 메시지에 관해서는, 그 메시지 내용에 따라 처리한 결과 전송로로 출력되는 메시지내의 헤더부에 상기 입력 메시지내 헤더부 내용(이벤트 번호)을 중계하는 수단 2개를 설정한다.
상기의 수단 ①,②에 의해, 각 외부 입력 데이터(트리거)마다 다른 이벤트 번호가 설정되기 때문에, 이 이벤트 번호를 판정하는 것에 의해 다른 트리거에 의한 메시지를 식별할 수가 있다.
이하, 본 발명의 제2실시예를 제11a도∼제18도에 의해 설명한다. 먼저, 본 발명이 적용되는 시스템 구조에 대해서 제12도∼제13도에 의해 설명한다. 또한, 이하의 실시예에서는 각 처리장치를 접속하는 공통 전송로를 1예로써 한겹의 루프 전송로에 한정하여 도시하지만, 두겹 루프, 버스형, 링형 또는 임의의 일반적 네트워크를 사용하여도 처리는 동일하다.
제12도에 있어서, (11)∼(14)는 제1실시예때와 마찬가지로 그 내부 메모리에 응용프로그램을 격납하여 이것을 실행하는 처리장치이고, (1)은 화살표 방향으로의 1방향성 루프 전송로이다. (21)∼(24)는 전송로 상의 데이터 전송 제어를 행하는 전송 제어장치(NCP : Network control Processor)이다. 각 NCP(21)∼(24)와 각 처리장치(11)∼(14)는 쌍방향으로 접속되어 있다. 처리장치(11)∼(14)의 처리결과(메시지)는 NCP(21)∼(24)를 거쳐서 전송로(1)로 송출된다. 또 NCP(21)∼(24)는 전송로(1)상을 흐르는 메시지가 자기에 접속되어 있는 처리장치에 필요한 것인가, 어떤가를 판정하여, 필요하다고 판정한 메시지를 자기에 접속되어 있는 처리장치로 보낸다. 각 처리장치 (11)∼(14)는, 그 내부에 기억한 응용프로그램의 실행에 필요한 모든 메시지가 갖추어진 시점에서 이 프로그램을 기동한다. 기동된 프로그램은 상기 데이터를 사용해서 처리를 실행하고 그 결과를 메시지로써 출력한다. 또, 본 실시예에서는 처리장치(11)에 각부 기기와의 입출력을 행하는 외부 입출력기기(10001)이 접속되어 있는 것으로 한다.
제13도에 전송로 상을 흐르는 메시지의 포메트를 도시한다. FC(32)는 기능 코드로 데이터의 내용이나 기능에 대한 코드이다. 각 NCP는 본 기능 코드를 기초로 수신 데이터가 자기에 접속되어 있는 처리장치에 필요한 것인가, 아닌가를 판단한다. SA(33)은 데이터를 발신한 NCP의 어드레스(발신원 어드레스)이며, C(34)는 전송 상 필요로 되는 일련번호이다. Data(36)은 각 응용프로그램이 처리한 결과의 내용을 나타내는 것이고, FCS(37)은 틀림 검지용 데이터, F(31),(38)은 각각 메시지의 처음과 끝을 나타내는 플래그이다. 또, EN(35)는 본 발명에 있어서 설정되는 처리 레벨의 일련번호이며, 이후 이것을 이벤트 번호라고 부른다. 이벤트 번호 에리어는 사전에 정해진 갯수의 처리장치 번호(3511,3521,‥‥‥)와 메시지 발생 일련번호(3512,3522,‥‥‥)로 된다. 여기에서 각각 쌍을 이루는 처리장치 번호와 메시지 발생 일련번호의 쌍(on1…351,on2…352)이 1개의 단위이고, 이것을 이후 이벤트 번호단위라고 부른다.
제12도에서 도시한 처리장치(11)∼(14)의 내부 구성은 제3도에 도시한 구성과 같다. 다만, 외부 출력 기기(10002)가 필요가 없을 때에는 외부 출력 제어 유니트(111)이 불필요하다.
제14a도는 제3도의 입출력 데이터 격납 에리어(105)의 내용을 도시하는 것이다. 에리어 1행째(1051)은 응용프로그램(1081)에 대한 입출력 메시지 격납 에리어이다. (10511)에는 입력 메시지가, (10513)에는 출력 메시지가 격납된다. 또, 기동 프로그램 에리어(10512)에는 (10511)에 격납된 입력 메시지에 의해 기동해야 할 프로그램(즉, (1081))을 도시하는 에리어이다. 이벤트 번호 격납 에리어(10514)는 미리 설정된 수 만큼 과거에 입력 메시지의 이벤트 번호를 입력 메시지의 기능 코드에 대응하여 격납해 두기 위한 에리어이며, 항상 최초부터 설정계수분의 과거 입력 메시지의 이벤트 번호를 격납하는 것으로 한다. 2행째(1052)는 응용프로그램(1082)의 입출력 메시지를 격납하는 에리어이다. 이하, 마찬가지로 각 응용프로그램마다 입출력 메시지 격납 에리어가 취해진다. 제14b도는 제14a도의 입력 메시지 격납 에리어(10511)의 포메트를 도시한 도면이다. 에리어(105111)에는 입력 메시지의 기능 코드가 미리 설정되어 있다. 에리어(105112)는 입력 메시지가 격납되어 있는가, 아닌가를 도시하는 플래그를 위한 에리어이고, 에리어(105113)은 이벤트 번호를 격납하기 위한 에리어, (105114)는 메시지내 데이터부 내용을 격납하기 위한 에리어이다. 응용프로그램이 여러개의 입력 메시지에 의해 기동하는 경우는 상기 각 에리어(105111)∼(105114)가 각 메시지마다 취하여진다. 또한, 출력 데이터 격납 에리어도 동일 포메트이다.
이하, 제15도∼제18도를 사용하여 본 발명인 다중 메시지 처리 방식에 대해서 설명한다.
제15도는 제3도(104)에서 도시한 처리 유니트(104)의 메시지 입력시의 처리 흐름을 도시하는 도면이다. 수신 버퍼(제3도(102))에서 메시지를 수신한 처리 장치는 먼저 본 발명인 다중 메시지 처리를 행한다(9601). 다음에 실행 가능한 응용프로그램이 존재하는가, 아닌가, 즉 프로그램의 실행에 필요한 입력 메시지가 전부 입출력 데이터 격납 에리어(제3도(105))내에 격납되어 있는가, 아닌가를 체크한다(9602). 실행 가능한 프로그램이 존재하지 않는 경우는 그대로 처리를 종료한다. 실행 가능한 프로그램이 존재하는 경우는 그 프로그램에 대응하는 입력 데이터 격납 에리어내의 이벤트 번호 에리어(제14b도 EN) 내용을 그 프로그램에 대응하는 출력 데이터 격납 에리어내의 이벤트 번호 에리어(EN)에 그대로 격납한다(9603).
여기에서, 여러개의 다른 이벤트 번호를 갖는 입력 메시지에 의해 기동되는 응용프로그램의 경우는, 각 입력 메시지내 이벤트 번호 에리어에 설정되어 있는 이벤트 번호단위를 모두 출력 데이터 격납 에리어내 이벤트 번호 에리어에 설정하는 것으로 한다. 다만, 모든 입력 메시지의 이벤트 번호단위의 합계 용량이 이벤트 번호 에리어 용량을 오버하는 경우는, 예를들면 일련번호가 작은 이벤트 번호단위에서 소거해 가는 것과 같이 미리 정해진 기준에 따라서 처리한다. 처리(9603) 종료후, 실행 가능 프로그램을 기동한다(9604). 또, 프로그램 실행 종료후, 입력 데이터 격납 에리어내의 flg부(제14b도)내용을 리세트한다.
기동된 응용프로그램은 입력 메시지를 사용해서 스스로의 처리를 실행후, 처리 결과를 출력 데이터 격납 에리어내 데이터부(Data)에 설정하고, 데이터가 설정되어 있는 것을 나타내는 flg에 1을 세트한다. 또, 처리장치는 출력 데이터 격납 에리어내 Data부에 데이터가 설정되어 있는 경우는 FC부, EN부, Data부 내용을 송신버퍼(제3도(103))내 해당 에리어에 설정한다.
송신 제어 유니트(제3도(101))는 송신 버퍼(제3도(103))내의 데이터를 NCP로 송출함과 동시에 그 데이터를 자체 처리장치내 응용프로그램에서 필요로 하는 경우는 수신 버퍼(제3도(102))에도 저장한다. 이상의 처리에 의해 프로그램 실행 종료후, 그 프로그램의 기동에 사용한 입력 데이터와 동일 이벤트 번호를 갖는 처리결과 데이터가 전송로로 송출된다.
제16도는 외부 입력 제어 유니트의 처리 흐름을 도시하는 도면이다. 외부 입력 발생시, 외부 입력 제어 유니트(제3도(109))는 외부 입력 FC 대응 테이블(제3도(110))에서 그 입력 데이터의 기능 코드를 판정하고, 송신 버퍼(제3도(103))에 외부 입력 데이터 내용 및 외부 입력 FC 대응 테이블에서 판정한 기능 코드를 설정한다(9701∼9702). 다음에 자체 처리장치 번호 에리어(제3도(106)) 및 일련번호 에리어(제3도(107))의 내용에 의해 이벤트 번호 단위를 생성하고, 송신 버퍼내에 출력 메시지의 이벤트 번호로써 설정한다(9703). 그후 일련번호 에리어 내용을 "1"증가시킨다(9704).
제17도는 제15도(9601)에서 도시한 다중 메시지 처리의 구체적인 처리 흐름을 도시하는 도면이다. 수신 버퍼에서 리드한 메시지내의 이벤트 번호가, 그 메시지와 동일 기능 코드를 갖는 과거에 입력한 메시지의 이벤트 번호와 일치하는가, 아닌가를 판정한다(9801). 구체적으로는 이번에 수신한 메시지의 기능 코드와 동일한 기능 코드가 입력 데이터 격납 에리어(제14b도)내 FC부에 설정되어 있는 입출력 데이터 격납 에리어(제14a도)의 행을 탐색한다. 그후, 탐색한 행의 이벤트 번호 격납 에리어내에 이번에 수신한 메시지내의 이벤트 번호의 값과 일치하는 것이 격납되어 있는가, 아닌가를 판정한다. 일치하는 것이 격납되어 있는 경우는, 이번에 입력한 메시지는 과거에 입력한 메시지와 중복된 메시지이기 때문에, 입력 데이터 격납 에리어에 수신 버퍼에서 리드한 메시지를 설정할 것 없이, 그대로 처리를 종료한다(9802). 즉, 과거에 수신한 메시지와 중복된 메시지인 것에 의해 배제한다. 한편, 일치하는 것이 격납되어 있지 않은 경우는 이번에 처음 리드한 메시지인 것에 의해, 이 메시지의 이벤트 번호부(EN) 및 데이터부(Data)의 내용을 메시지내 기능 코드와 동일 기능 코드가 설정되어 있는 입력 데이터 격납 에리어(제14b도)내의 EN부, Data부에 설정한다. 또한, 그 flg부에 1을 세트한다(9803). 다음에, 이번의 입력 메시지의 이벤트 번호 내용을, 메시지를 격납한 입출력 데이터 격납 에리어의 이벤트 번호 격납 에리어에 최신 메시지의 이벤트 번호로써 부가한다. 이때, 격납되어 있는 이벤트 번호의 갯수가 사전에 설정된 갯수를 오버하는 경우에는, 격납되어 있는 것중 가장 오래된 이벤트 번호를 제거한다(9804).
이상 기술한 처리에 의해, 본 발명인 다중 메시지 처리가 실시되는 것이지만, 그 전체적인 흐름을 제11도에 의해 설명한다. 제11a도는 시스템 구성 및 처리의 흐름을 도시하는 도면이고, 시스템 구성은 제12도에서 도시한 것과 동일하다. 각 처리장치(11)∼(14)내에는 응용프로그램(108),(108'),(108"),(108'")가 조립되어 있고, 이중 처리장치(12),(13)내의 프로그램(108')와 (108")는 모두 동일한 프로그램으로 한다. 지금 처리장치(11)이 외부 입력 기기(10001)에서 데이터를 리드한 것으로 한다. 처리장치(11)은, 외부 입력 기기에서의 데이터에 기능 코드 FC1 및 이벤트 번호 EN1을 설정하고, 또 제11b도에서 도시하는 포메트의 메시지(9001)을 작성해서 전송로(1)로 송출한다. 메시지(9001)의 포맷은 제2도의 그것과 같고, 각각의 필드 FC(202), SA(203), C(204), EN(205), FCS(207)은 다른 응답 메시지와 구분하기 위하여 밀수 1을 붙여서 FC1, SA1, C1, EN1, FCS1로 한다. 또한, 이 포메트는 제13도에서 도시한 포메트에 따른다. 처리 장치(12)는 메시지 (9001)을 수신하고, 그후 자체내 응용프로그램(108')를 기동한다. 응용프로그램(108')는 메시지(9001)을 사용해서 스스로의 처리를 실행하고, 그 결과 DATA2 및 그 기능 코드 FC2를 출력한다. 처리장치(12)는 응용프로그램이 출력한 FC2 및 DATA2에, 입력 메시지(9001)내의 이벤트 번호 E1을 부가하고, 제11b도에 도시하는 포메트의 메시지(9002)를 작성, 전송로(1)로 송출한다. 처리장치(13)도 처리장치(12)와 마찬가지로 메시지(9001)을 수신하여 자체내 응용프로그램(108")을 기동하고, 그 결과 메시지(9003)을 작성하여 전송로(1)로 송출한다. 이때, 응용프로그램(108')와 (108")는 완전히 동일한 것에 의해 그 출력 메시지(9002)와 (9003)은 동일한 기능 코드 FC2 및 데이터부 내용 DATA2을 갖는다.
또, 이들은 모두 메시지(9001)에 의해 기동한 것에 의해, 그 출력 메시지는 모두 이벤트 번호 EN1을 갖는다. 즉, (9002)와 (9003)은 본 발명에서 기술하는 바의 다중 메시지이다. 지금, 처리장치(14)에 메시지(9003)이 먼저 도달한 것으로 한다. 처리장치(14)는 메시지(9003)을 수신하여, 자체내 응용프로그램(108'")를 기동한다. 다음에 메시지(9002)가 처리장치(14)에 도달한 것으로 한다. 이때, 처리장치(14)는 메시지(9002)를 리드하지만, 기능 코드 FC2 및 이벤트 번호 EN1이 먼저 수신한 메시지(9003)의 기능 코드 FC2 및 이벤트 번호 EN1과 일치하기 때문에, 이 메시지를 사용할 것 없이 배제한다. 메시지(9002)가 먼저 처리장치(14)에 도달한 경우에는 반대로 후에 도달한 메시지(9003)이 위와 마찬가지의 처리에 의해 배제된다.
이상 기술한 것과 같이, 본 발명에 의하면 여러개의 중복된 메시지가 전송계내에 발생한 경우, 각 처리장치는 그들 다중 메시지중, 가장 최초에 메시지를 수신한 시점에서 스스로의 처리를 실행할 수 있고, 또 이후에 수신한 그들 다중 메시지를 무시하는 것이 가능하게 된다.
이상 기술한 방식은, 다중 메시지중에서 유일한 메시지를 선착 우선으로 선택하는 것이다. 이것에 대해, 각 처리장치내에 타이머, 중복된 메시지 격납용 에리어를 설정하고, 제15도(9601)의 다중 메시지 처리부에 다수결 판정 논리를 조립하는 것에 의해, 다중 메시지를 수집하여 그들의 사이에서 다수결 논리에 따라 사용해야 할 메시지를 선택하는 것도 가능하게 된다. 구체적인 제15도(9601)에 대응하는 처리의 흐름을 제18도에 도시한다. 처리장치는 먼저, 수신 버퍼에서 수신한 메시지에 대해 이벤트 번호 격납 에리어(제14a도)에 따라 이벤트 번호 체크를 행한다(9901). 이 처리는 제17도의(9801)과 같다. (9901)에서의 체크 결과 중복된 메시지의 경우에는 그대로 처리를 종료한다. (9901)에서의 체크 결과, 중복된 메시지가 아닌 경우는 그 메시지내 이벤트 번호가 데이터 보존 에리어내에 수집하고 있는 메시지의 이벤트 번호와 일치하는가, 아닌가를 판정한다(9903). 일치하는 경우는 그 메시지를 그대로 데이터 보존 에리어에 격납한다(9905). 일치하지 않는 경우는 타이머를 세트(9904)후, 그 메시지를 데이터 보전 에리어에 격납한다(9905). 또, (9904)에서 세트된 타이머가 타임 아웃한 시점에서 중복된 메시지 격납용 에리어내의 대응하는 중복된 메시지 사이에서 다수결 판정을 행하여(9906), 선택된 메시지를 입력 데이터 격납 에리어에 세트하고(9907), 또 그 메시지내의 이벤트 번호를 이벤트 번호 격납 에리어내에 세트(9908)한다. 처리(9907),(9908)은 제17도(9803),(9804)와 동일 처리이다.
또, 상기 방식에서는 타임 아웃이 발생한 타이밍에서 다수결 판정을 행했지만, 일정 갯수 중복된 메시지가 수집된 타이밍에서 다수결 판정을 실시하는 것도 가능하다.
이상의 다수결 판정 방식을 사용한 경우는, 동일 처리를 실행하는 처리장치가 3개 이상일 때는 이상 메시지를 발생한 처리장치를 특정화하는 것도 가능하다.
본 발명에 의하면, 네트워크에 접속되어 있는 각 처리장치가 네트워크내에 흐르는 메시지중에서 중복된 것을 식별하고, 중복된 메시지에 관해서는 그들중에서 각 처리장치 자신의 논리에 따라 1개의 메시지를 선택하여 스스로의 처리를 실행하는 것이 가능하게 된다. 따라서, 본 발명의 방식을 분산 처리 시스템을 구성하는 각 처리장치에 조립해 두는 것에 의해, 임의의 처리장치를 임의의 시점에서 임의의 다중도로 다중화하여, 비동기(非同期)로 프리 런(free run)시키는 것이 가능하게 되고, 시스템의 non-stop성, 신뢰성이 크게 향상한다.

Claims (23)

  1. 전송로(1)을 거쳐서 접속된 다수의 처리장치(11∼16)을 포함하는 시스템에서 메시지를 처리하는 분산 처리 방법에 있어서, 처리장치에서부터 상기 전송로로 데이터, 상기 메시지의 순서에 관한 정보(205,105113)와 데이터의 내용을 나타내는 기능 코드(202,105111)를 포함하는 메시지를 송출하는 스텝, 저장되어야 할 데이터에 대한 기능 코드를 갖는 적어도 하나의 처리장치에서 상기 전송로를 통하여 흐르는 메시지를 수신하는 스텝, 상기 메시지에 포함된 순서에 관한 정보와 각 기능 코드에 따라서 상기 수신한 메시지로부터 저장되어야 할 데이터를 적어도 저장하는 스텝, 순서에 관한 정보에 따라서 상기 전송로로부터 수신된 다수의 메시지의 순서를 판정하는 스텝을 포함하는 분산 처리 방법.
  2. 특허청구의 범위 제1항에 있어서, 상기 순서에 관한 정보는 상기 메시지가 발생된 순서(3512,3522)를 나타내는 이벤트 번호(351,352)인 분산 처리 방법.
  3. 전송로(1)을 거쳐서 접속된 다수의 처리장치(11∼16), 상기 처리장치로부터 상기 전송로로 데이터, 상기 메시지의 순서에 관한 정보(205,105113)와 데이터의 내용을 나타내는 기능 코드(202,105111)을 포함하는 메시지를 송출하는 수단(101,103,104,105), 저장되어야 할 데이터에 대한 기능 코드를 갖는 적어도 하나의 처리장치에서 상기 전송로를 통하여 흐르는 메시지를 수신하는 수단(101,102), 상기 메시지에 포함된 순서에 관한 정보와 각 기능 코드에 따라서 상기 수신한 메시지로부터 저장되어야 할 데이터를 적어도 저장하는 수단, 순서에 관한 정보에 따라서 상기 전송로로부터 수신된 다수의 메시지의 순서를 판정하는 수단을 포함하는 메시지 처리용 분산 처리 시스템.
  4. 특허청구의 범위 제3항에 있어서, 상기 순서에 관한 정보는 상기 메시지가 발생된 순서(3512,3522)를 나타내는 이벤트 번호(351,352)인 분산 처리 시스템.
  5. 전송로(1)을 거쳐서 접속된 다수의 처리장치(11∼16)을 갖는 분산 처리 시스템에 있어서, 상기 처리 장치중 하나에서 상기 전송로 상으로 상기 처리장치중의 상기 하나에서 상기 메시지의 발생의 순서를 나타내는 이벤트 번호(351,352)를 갖는 메시지(9001,9002,9003)을 송출하는 스텝, 상기 메시지를 상기 전송로로 부터 적어도 하나의 처리장치에서 수신하는 스텝, 상기 수신하는 처리장치에서 실행되고, 동일 이벤트 번호와 일치하는 중복된 메시지를 검출하도록, 사전에 수신된 메시지의 이벤트 번호와 상기 수신된 메시지의 이벤트 번호를 비교하는 스텝을 포함하는 다중 메시지 처리 방법.
  6. 특허청구의 범위 제8항에 있어서, 상기 송출하는 스텝은 외부 기기(10001,10002)로부터 수신한 데이터를 갖는 처리장치가 상기 외부 기기로부터 수신한 데이터의 수신 순서를 나타내는 이벤트 번호와 상기 외부에서 수신한 데이터를 갖는 메시지를 발생하고, 상기 발생된 메시지를 전송로로 송출하는 스텝인 다중 메시지 처리 방법.
  7. 특허청구의 범위 제9항에 있어서, 각 처리장치는 이벤트 번호가 일치하는 검출된 메시지에서 최초에 수신한 메시지만 사용하여 자체의 처리를 실행하는 다중 메시지 처리 방법.
  8. 특허청구의 범위 제9항에 있어서, 각 처리장치는 동일 이벤트 번호와 일치하는 검출된 중복 메시지를 소정기간 동안 수집하고, 수집 기간의 경과 후 다수결 논리에 따라서 상기 수집 메시지중 하나를 선택하고, 상기 선택된 메시지를 처리하는 다중 메시지 처리 방법.
  9. 전송로(1)을 거쳐서 접속된 다수의 처리장치(11∼16)을 갖는 분산 처리 시스템에 있어서, 상기 처리 장치중 하나에서부터 상기 전송로 상으로 상기 처리장치의 상기 하나에서 상기 메시지의 발생 순서를 나타내는 이벤트 번호(205,105113)을 갖는 메시지를 송출하는 수단(101,103,104,105), 상기 메시지를 상기 전송로로부터 적어도 하나의 처리장치에서 수신하는 수단(101,102), 상기 수신하는 처리장치에서 동일 이벤트 번호와 일치하는 중복된 메시지(9001,9002,9003)을 검출하도록 사전에 수신된 메시지의 이벤트 번호와 상기 수신된 메시지의 이벤트 번호를 비교하는 수단을 포함하는 다중 메시지 처리 시스템.
  10. 특허청구의 범위 제12항에 있어서, 상기 송출하는 수단은 외부 기기(10001)로부터 데이터를 수신한 처리장치가 외부 기기로부터 수신한 데이터의 수신순서를 나타내는 이벤트 번호와 외부에서 수신한 데이터를 갖는 메시지를 발생하고, 상기 발생된 메시지를 상기 전송로로 송출하도록 동작하는 수단인 다중 메시지 처리 시스템.
  11. 특허청구의 범위 제4항에 있어서, 또 상기 수신하는 처리장치에서 실행되고 상기 수신된 메시지의 처리 결과를 포함하는 제2의 메시지에 상기 이벤트 번호를 부가하는 스텝, 상기 제2의 메시지를 상기 전송로로 송출하는 스텝을 포함하는 분산 처리 방법.
  12. 특허청구의 범위 제1항에 있어서, 상기 판정하는 스텝은 상기 순서에 관한 정보에 따라서 상기 프로그램의 처리순서의 흐름과 일치하는 정보를 얻기 위하여, 각 처리장치에서 각 기능 코드에 대하여 저장된 데이터와 프로그램의 대응 관계를 확립하는 스텝을 포함하는 분산 처리 방법.
  13. 특허청구의 범위 제1항에 있어서, 또 상기 시스템에서 상기 순서에 관한 정보 및 상기 기능 코드와 일치하는 상기 저장된 데이터에 따라서 상기 수신하는 처리장치에 의해 상기 수신된 메시지를 고장 진단하는 스텝을 포함하는 분산 처리 방법.
  14. 특허청구의 범위 제5항에 있어서, 상기 메시지를 판정하는 수단은 상기 순서에 관한 정보에 따라서 상기 프로그램의 처리 순서의 흐름과 일치하는 정보를 얻기 위하여, 각 처리장치에서 각 기능 코드에 대하여 저장된 데이터와 프로그램의 대응 관계를 확립하는 수단을 포함하는 분산 처리 시스템.
  15. 특허청구의 범위 제5항에 있어서, 상기 수신하는 처리장치는, 또 상기 시스템에서 상기 순서에 관한 정보 및 상기 기능 코드와 일치하는 상기 저장된 데이터에 따라서 상기 수신된 메시지를 고장 진단하는 수단을 포함하는 분산 처리 시스템.
  16. 특허청구의 범위 제8항에 있어서, 상기 송출하는 스텝은 전송로로부터 메시지가 수신된 처리장치가 상기 메시지의 내용에 따라서 실행된 처리의 결과로써 출력해야 할 중복 메시지에 메시지의 이벤트 번호를 부가하고(551), 상기 중복 메시지를 상기 전송로로 송출하는 스텝인 다중 메시지 처리 방법.
  17. 특허청구의 범위 제12항에 있어서, 상기 송출 수단은 상기 전송로로부터 메시지를 수신한 처리장치가 상기 메시지의 내용에 따라서 실행된 처리의 결과로써 출력해야 할 중복 메시지에 메시지의 이벤트 번호를 부가하고, 상기 중복 메시지를 상기 전송로로 송출하도록 작용하는 수단(103,109)인 다중 메시지 처리 시스템.
  18. 전송로(1)을 거쳐서 접속된 다수의 처리장치(11∼16)을 포함하는 시스템에서 메시지를 처리하는 분산 처리 방법에 있어서, 각각의 상기 처리장치에 대한 처리는, 메시지가 발생된 순서(3512,3522)를 나타내는 처리장치의 번호(3511,3521)과 이벤트 번호(351,352)를 포함하는 메시지를 독립적으로 발생하는 스텝, 상기 발생된 메시지(9001,9002,9003)을 상기 전송로로 송출하는 스텝, 상기 전송로를 통하여 흐르는 메시지를 적어도 하나의 처리장치에서 수신하고, 상기 수신된 메시지에 따라서 상기 하나의 처리장치에서 처리(108,108',108",108'")를 독립적으로 실행하는 스텝을 포함하는 분산 처리 방법.
  19. 특허청구의 범위 제21항에 있어서, 각각의 상기 처리장치에 대한 처리는, 또 상기 수신된 메시지에 따라서 상기 독립적으로 실행한 처리의 결과에 상기 이벤트 번호를 부가하는 스텝, 상기 결과적인 메시지를 상기 전송로로 송출하는 스텝을 포함하는 분산 처리 방법.
  20. 특허청구의 범위 제21항에 있어서, 또 전송로를 통하여 흐르는 다수의 메시지를 적어도 하나의 처리 장치에서 수신하는 스텝, 각각의 다수의 이벤트 번호와 일치하는 상기 다수의 메시지의 수신된 데이터를 저장하는 스텝을 포함하는 분산 처리 방법.
  21. 전송로(1)을 거쳐서 접속된 다수의 처리장치(11∼16)을 갖는 메시지 처리용 분산 처리 시스템에 있어서, 메시지가 발생된 순서(3512,3522)를 나타내는 처리장치의 번호(3511,3521)과 이벤트 번호(351,352)를 포함하는 메시지를 독립적으로 발생하는 수단, 상기 발생된 메시지를 상기 전송로로 송출하는 수단, 상기 전송로를 통하여 흐르는 메시지를 적어도 하나의 처리장치에서 수신하고, 상기 수신된 메시지에 따라서 상기 하나의 처리장치에서 처리를 독립적으로 실행하는 수단을 포함하는 분산 처리 시스템.
  22. 특허청구의 범위 제24항에 있어서, 상기 처리장치는, 또 상기 수신된 메시지에 따라서 상기 독립적으로 실행한 처리의 결과에 상기 이벤트 번호를 부가하는 수단, 상기 결과적인 메시지를 상기 전송로로 송출하는 수단(101,103,104,105)를 포함하는 분산 처리 시스템.
  23. 특허청구의 범위 제24항에 있어서, 또 상기 전송로를 통하여 흐르는 다수의 메시지를 적어도 하나의 처리장치에서 수신하는 수단(101,102), 각각의 다수의 이벤트 번호와 일치하는 상기 다수의 메시지의 수신된 데이터를 저장하는 수단을 포함하는 분산 처리 시스템.
KR1019870003083A 1986-04-04 1987-04-01 분산 처리 시스템과 그 방법 Expired KR900005883B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP61076522A JP2656471B2 (ja) 1986-04-04 1986-04-04 分散処理システムおよびその情報処理方法
JP76522 1986-04-04
JP86-76522 1986-04-04
JP61173642A JP2585541B2 (ja) 1986-07-25 1986-07-25 多重メッセージ処理方法
JP86-173642 1986-07-25
JP173642 1986-07-25

Publications (2)

Publication Number Publication Date
KR870010448A KR870010448A (ko) 1987-11-30
KR900005883B1 true KR900005883B1 (ko) 1990-08-13

Family

ID=26417666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870003083A Expired KR900005883B1 (ko) 1986-04-04 1987-04-01 분산 처리 시스템과 그 방법

Country Status (3)

Country Link
KR (1) KR900005883B1 (ko)
CN (1) CN1010060B (ko)
DE (1) DE3711273A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN170793B (ko) * 1987-12-18 1992-05-23 Hitachi Ltd
JPH01194054A (ja) * 1988-01-29 1989-08-04 Hitachi Ltd 分散処理システムのプログラムローデイング方式
KR20040052016A (ko) * 2002-12-13 2004-06-19 한국전자통신연구원 이벤트 관리 분산처리 시스템에서의 gui기반 이벤트모니터링 방법 및 그 장치
CN101197900B (zh) * 2003-07-29 2010-11-03 株式会社理光 图像形成装置、图像处理方法、图像处理程序和记录介质
JP6566122B2 (ja) * 2016-03-31 2019-08-28 東芝三菱電機産業システム株式会社 プラント監視制御システム用データ再生装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57121750A (en) * 1981-01-21 1982-07-29 Hitachi Ltd Work processing method of information processing system
EP0148297B1 (en) * 1984-01-09 1993-12-15 Hitachi, Ltd. Synchronous decentralized processing system

Also Published As

Publication number Publication date
DE3711273A1 (de) 1987-10-15
CN87104490A (zh) 1988-01-20
CN1010060B (zh) 1990-10-17
KR870010448A (ko) 1987-11-30

Similar Documents

Publication Publication Date Title
US4627055A (en) Decentralized processing method and system
KR950003201B1 (ko) 온라인 테스트 방법 및 그의 장치
US8464330B2 (en) Agent device, image-forming-device management system, image-forming-device management method, image-forming-device management program and storage medium
US4807224A (en) Multicast data distribution system and method
JPH08242229A (ja) ネットワーク監視における状態整合処理システム
KR930000590B1 (ko) 분산처리시스템의 프로그램로딩방법 및 시스템
CN106685676B (zh) 一种节点切换方法及装置
EP0225603B1 (en) Distributed processing system and method
WO1997046930A2 (en) Process for distributed garbage collection
KR900005883B1 (ko) 분산 처리 시스템과 그 방법
EP0726663A2 (en) Information processing system and communication method
JPH0610802B2 (ja) 分散処理システムの入力メッセージ整合化方法
JP2003162430A (ja) 障害情報管理装置および障害情報管理方法
US5506962A (en) Distributed processing system and method for job execution using a plurality of processors and including identification of replicated data
JPH07183905A (ja) 遠隔監視システム
US5335324A (en) Distributed processing system and method for job execution using a plurality of processors and including identification of replicated data
JP2713965B2 (ja) 情報収集装置
US8578215B2 (en) Method and system for gathering data using automatic appliance failover
JP2585541B2 (ja) 多重メッセージ処理方法
JP7389370B2 (ja) 運用装置、保守管理システム、運用方法およびプログラム
JPH10233792A (ja) ポーリング方式及び方法
JP2702635B2 (ja) 故障監視装置
JP2945830B2 (ja) ビル管理装置の通信方法
CN116743773A (zh) 选煤厂全流程数字化工程设计的数据传输方法及系统
JP2002207709A (ja) エージェントプログラムの巡回方法

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19870401

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19870401

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 19900326

Patent event code: PE09021S01D

G160 Decision to publish patent application
PG1605 Publication of application before grant of patent

Comment text: Decision on Publication of Application

Patent event code: PG16051S01I

Patent event date: 19900712

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 19901105

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 19910201

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 19910201

End annual number: 3

Start annual number: 1

PR1001 Payment of annual fee

Payment date: 19930804

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 19940622

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 19950704

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 19960703

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 19970714

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 19971224

Start annual number: 9

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20010713

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20020712

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20030801

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20040802

Start annual number: 15

End annual number: 15

PR1001 Payment of annual fee

Payment date: 20050801

Start annual number: 16

End annual number: 16

FPAY Annual fee payment

Payment date: 20060731

Year of fee payment: 17

PR1001 Payment of annual fee

Payment date: 20060731

Start annual number: 17

End annual number: 17

EXPY Expiration of term
PC1801 Expiration of term