KR102210972B1 - Smart Factory System for Performing High Speed Big Data Analysis - Google Patents

Smart Factory System for Performing High Speed Big Data Analysis Download PDF

Info

Publication number
KR102210972B1
KR102210972B1 KR1020180174051A KR20180174051A KR102210972B1 KR 102210972 B1 KR102210972 B1 KR 102210972B1 KR 1020180174051 A KR1020180174051 A KR 1020180174051A KR 20180174051 A KR20180174051 A KR 20180174051A KR 102210972 B1 KR102210972 B1 KR 102210972B1
Authority
KR
South Korea
Prior art keywords
big data
data
unit
data analysis
alignment
Prior art date
Application number
KR1020180174051A
Other languages
Korean (ko)
Other versions
KR20190100846A (en
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 KR20190100846A publication Critical patent/KR20190100846A/en
Application granted granted Critical
Publication of KR102210972B1 publication Critical patent/KR102210972B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4183Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by data acquisition, e.g. workpiece identification
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0221Preprocessing measurements, e.g. data collection rate adjustment; Standardization of measurements; Time series or signal analysis, e.g. frequency analysis or wavelets; Trustworthiness of measurements; Indexes therefor; Measurements using easily measured parameters to estimate parameters difficult to measure; Virtual sensor creation; De-noising; Sensor fusion; Unconventional preprocessing inherently present in specific fault detection methods like PCA-based methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • General Factory Administration (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

실시간으로 빅데이터 분석 서비스를 제공할 수 있는 본 발명의 일 측면에 따른 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템은, 데이터 수집장치로부터 수집된 수집데이터를 전처리하는 미들웨어 시스템; 상기 전처리된 수집데이터에 상기 수집데이터가 발생된 공정의 공정 식별자를 매핑하여 매핑 데이터를 생성하고, 생성된 매핑 데이터를 미리 정해진 기준에 따라 정렬하여 정렬 데이터를 생성하는 분산병렬처리시스템; 및 빅데이터 분석모델을 이용하여 상기 정렬데이터를 분석하는 고속 빅데이터 분석 시스템을 포함하고, 상기 고속 빅데이터 분석 시스템은, 상기 정렬 데이터가 인스턴스 내에 바이너리 형태로 저장되는 제1 빅데이터 저장부; 상기 제1 빅데이터 저장부에 저장된 정렬 데이터가 디스크 내에 파일로 저장되는 제2 빅데이터 저장부; 및 상기 제1 빅데이터 저장부에 저장된 정렬 데이터를 실시간성 빅데이터 분석모델을 이용하여 분석하고, 상기 제2 빅데이터 저장부에 저장된 정렬 데이터를 비실시간성 빅데이터 분석모델을 이용하여 분석하는 분석장치를 포함하는 것을 특징으로 한다.A smart factory system for performing high-speed big data analysis according to an aspect of the present invention capable of providing a big data analysis service in real time includes: a middleware system for preprocessing collected data collected from a data collection device; A distributed parallel processing system for generating mapping data by mapping a process identifier of a process in which the collected data is generated to the pre-processed collected data, and generating alignment data by aligning the generated mapping data according to a predetermined criterion; And a high-speed big data analysis system for analyzing the alignment data using a big data analysis model, wherein the high-speed big data analysis system includes: a first big data storage unit in which the alignment data is stored in an instance in a binary format; A second big data storage unit for storing the alignment data stored in the first big data storage unit as a file in the disk; And analyzing the alignment data stored in the first big data storage unit using a real-time big data analysis model, and analyzing the alignment data stored in the second big data storage unit using a non-real time big data analysis model. It characterized in that it comprises a device.

Figure R1020180174051
Figure R1020180174051

Description

고속 빅데이터 분석을 수행하는 스마트팩토리 시스템{Smart Factory System for Performing High Speed Big Data Analysis}Smart Factory System for Performing High Speed Big Data Analysis {Smart Factory System for Performing High Speed Big Data Analysis}

본 발명은 공장관리시스템에 관한 것으로서, 보다 구체적으로는 스마트팩토리에 관한 것이다.The present invention relates to a factory management system, and more specifically, to a smart factory.

원재료를 이용하여 완제품을 생성하기 위한 복수개의 공정들이 연속적으로 수행되고, 각 공정의 산출물들이 서로 혼합되거나 특정 공정의 산출물의 상태가 변화하여 후속 공정으로 공급되는 것과 같이, 각 공정들이 서로 관련되어 있는 생산 방식을 연속공정 생산방식이라 한다. 철강산업, 에너지산업, 제지산업, 또는 정유산업 등이 연속공정 생산방식이 적용되는 대표적인 산업들이다.Each process is related to each other, such as a plurality of processes for producing a finished product using raw materials are continuously performed, and the outputs of each process are mixed with each other or the state of the output of a specific process is changed and supplied to the subsequent process. The production method is called a continuous process production method. The steel industry, energy industry, paper industry, or oil refinery industry are representative industries to which the continuous process production method is applied.

이러한 연속공정 생산방식이 적용되는 산업의 경우, 단일공정 생산방식이 적용되는 산업과 달리, 원재료 또는 중간재가 고속으로 이동하기 때문에 데이터 수집 주기가 짧고 데이터의 양이 많을 뿐만 아니라, 소음, 먼지, 수분 등이 많은 공장 환경에서 제품이 생산되기 때문에 계측이상이 자주 발생하고, 작업 방법에 따라 중간재들이 서로 혼합되거나 소재의 위치가 이동한다는 특성이 있다.In the case of industries to which such a continuous process production method is applied, unlike industries to which a single process production method is applied, raw materials or intermediate materials move at high speed, so the data collection cycle is short and the amount of data is large, as well as noise, dust and moisture. Since products are produced in a factory environment with many lights, measurement errors often occur, and intermediate materials are mixed with each other or the location of materials is moved depending on the work method.

이에 따라, 연속공정 생산방식이 적용되는 산업의 경우 많은 데이터를 실시간으로 처리할 수 있고, 각 공정 별로 발생된 데이터들을 연계하여 처리할 수 있는 시스템이 요구된다.Accordingly, in the case of an industry to which a continuous process production method is applied, a system capable of processing a lot of data in real time and processing data generated by each process is required.

하지만, 대한민국 공개특허공보 제10-2015-0033847호(발명의 명칭: 실시간 공장상황을 반영한 디지털 팩토리 생산능력 관리 시스템, 2015.04.02. 공개) 등에 개시되어 있는 일반적인 공장 데이터 처리 시스템(예컨대, 철강 데이터 처리 시스템)은 단일 공정에서 발생하는 데이터의 처리 및 분석을 위한 것이기 때문에, 연속 공정에서 발생하는 많은 데이터를 실시간으로 처리할 수 없을 뿐만 아니라, 각 공정별로 발생된 데이터들 간의 연관관계를 분석할 수 없다는 문제점이 있다.However, a general factory data processing system disclosed in Korean Patent Application Publication No. 10-2015-0033847 (name of invention: digital factory capacity management system reflecting real-time factory conditions, published on April 2, 2015), etc. Since the processing system) is for processing and analyzing data generated in a single process, it cannot process a lot of data generated in a continuous process in real time, and it is also possible to analyze the relationship between the data generated by each process. There is no problem.

특히, 기존의 공장데이터 처리 시스템의 경우, 발생된 데이터들이 기록되고 있는 동안에는 기록작업이 종료될 때까지는 해당 데이터에 접근할 수가 없을 뿐만 아니라, 데이터의 기록작업이 종료된 이후라도 해당 데이터의 로딩에 많은 시간이 소요되므로, 재료나 제품의 품질판정 또는 이상예측 등과 같이 실시간 분석이 요구되는 분석작업을 수행할 수 없다는 문제점이 있다.In particular, in the case of the existing factory data processing system, while the generated data is being recorded, the data cannot be accessed until the recording operation is completed, and the data cannot be loaded even after the data recording operation is completed. Since it takes a lot of time, there is a problem in that it is not possible to perform an analysis task requiring real-time analysis such as quality determination or abnormality prediction of materials or products.

본 발명은 상술한 문제점을 해결하기 위한 것으로서, 실시간으로 빅데이터 분석 서비스를 제공할 수 있는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템을 제공하는 것을 그 기술적 과제로 한다.The present invention is to solve the above-described problem, and it is an object of the present invention to provide a smart factory system that performs high-speed big data analysis capable of providing a big data analysis service in real time.

또한, 본 발명은 API를 이용하여 리퀘스터를 고속 빅데이터 분석 시스템에 접속시킬 수 있는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템을 제공하는 것을 다른 기술적 과제로 한다.In addition, the present invention is another technical problem to provide a smart factory system that performs high-speed big data analysis capable of connecting a requester to a high-speed big data analysis system using an API.

상술한 목적을 달성하기 위한 본 발명의 일 측면에 따른 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템은, 데이터 수집장치로부터 수집된 수집데이터를 전처리하는 미들웨어 시스템; 상기 전처리된 수집데이터에 상기 수집데이터가 발생된 공정의 공정 식별자를 매핑하여 매핑 데이터를 생성하고, 생성된 매핑 데이터를 미리 정해진 기준에 따라 정렬하여 정렬 데이터를 생성하는 분산병렬처리시스템; 및 빅데이터 분석모델을 이용하여 상기 정렬데이터를 분석하는 고속 빅데이터 분석 시스템을 포함하고, 상기 고속 빅데이터 분석 시스템은, 상기 정렬 데이터가 인스턴스 내에 바이너리 형태로 저장되는 제1 빅데이터 저장부; 상기 제1 빅데이터 저장부에 저장된 정렬 데이터가 디스크 내에 파일로 저장되는 제2 빅데이터 저장부; 미리 정해진 이벤트가 발생되면 상기 제1 빅데이터 저장부에 저장된 정렬 데이터를 상기 파일로 생성하여 상기 제2 빅데이터 저장부에 저장하는 파일생성유닛; 및 상기 제1 빅데이터 저장부에 저장된 정렬 데이터를 실시간성 빅데이터 분석모델을 이용하여 분석하고, 상기 제2 빅데이터 저장부에 저장된 정렬 데이터를 비실시간성 빅데이터 분석모델을 이용하여 분석하는 분석장치를 포함하는 것을 특징으로 한다.A smart factory system for performing high-speed big data analysis according to an aspect of the present invention for achieving the above object includes: a middleware system for preprocessing collected data collected from a data collection device; A distributed parallel processing system for generating mapping data by mapping a process identifier of a process in which the collected data is generated to the pre-processed collected data, and generating alignment data by aligning the generated mapping data according to a predetermined criterion; And a high-speed big data analysis system for analyzing the alignment data using a big data analysis model, wherein the high-speed big data analysis system includes: a first big data storage unit in which the alignment data is stored in an instance in a binary format; A second big data storage unit for storing the alignment data stored in the first big data storage unit as a file in the disk; A file generation unit generating the alignment data stored in the first big data storage unit as the file when a predetermined event occurs and storing the alignment data in the second big data storage unit; And analyzing the alignment data stored in the first big data storage unit using a real-time big data analysis model, and analyzing the alignment data stored in the second big data storage unit using a non-real time big data analysis model. It characterized in that it comprises a device.

본 발명에 따르면, 빅데이터 저장부를 빅데이터 분석을 위해 실시간으로 데이터를 제공하는 제1 빅데이터 저장부와 장기간의 대용량 데이터를 제공할 수 있는 제2 빅데이터 저장부로 구분하여 운영함으로써 실시간으로 빅데이터 분석 서비스를 제공할 수 있다는 효과가 있다.According to the present invention, the big data storage unit is divided into a first big data storage unit that provides data in real time for big data analysis and a second big data storage unit that can provide long-term large-capacity data, It has the effect of being able to provide analysis services.

또한, 본 발명에 따르면 API를 이용하여 고속 빅데이터 분석 시스템에 접근할 수 있어 고속 빅데이터 분석 시스템의 인프라나 솔루션에 변화가 발생하더라도 리퀘스터와 고속 빅데이터 분석 시스템을 접속시키는 소프트웨어를 변경할 필요 없어 개발비용을 절감할 수 있다는 효과가 있다. In addition, according to the present invention, it is possible to access the high-speed big data analysis system using the API, so even if there is a change in the infrastructure or solution of the high-speed big data analysis system, there is no need to change the software connecting the requester and the high-speed big data analysis system. It has the effect of reducing development cost.

도 1은 본 발명의 일 실시예에 따른 스마트팩토 아키텍쳐를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 미들웨어 시스템의 구성을 보여주는 블록도이다.
도 3은 복수개의 프로세싱부 및 복수개의 큐 저장부를 포함하는 미들웨어 시스템의 구성을 보여주는 도면이다.
도 4는 본 발명의 일 실시예에 따른 분산병렬처리시스템의 구성을 구체적으로 보여주는 도면이다.
도 5는 복수개의 프로세싱부 및 복수개의 메모리부를 포함하는 분산병렬처리시스템의 구성을 보여주는 도면이다.
도 6은 데이터 매핑 및 정렬 작업의 분산병렬처리방법을 예시적으로 보여주는 개념도이다.
도 7은 3중화된 메모리부의 구성을 보여주는 도면이다.
도 8은 본 발명의 일 실시예에 따른 고속 빅데이터 분석 시스템의 구성을 구체적으로 보여주는 도면이다.
도 9는 도 8에 도시된 제1 또는 제2 빅데이터 저장부의 구성의 일 예를 보여주는 도면이다.
도 10은 본 발명의 일 실시예에 따른 API 서비스 제공 시스템의 구성을 구체적으로 보여주는 도면이다.
1 is a diagram showing a smart factor architecture according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a middleware system according to an embodiment of the present invention.
3 is a diagram showing the configuration of a middleware system including a plurality of processing units and a plurality of queue storage units.
4 is a diagram showing in detail the configuration of a distributed parallel processing system according to an embodiment of the present invention.
5 is a diagram showing the configuration of a distributed parallel processing system including a plurality of processing units and a plurality of memory units.
6 is a conceptual diagram illustrating a method of distributed parallel processing of data mapping and sorting tasks by way of example.
7 is a diagram showing a configuration of a tripled memory unit.
8 is a diagram showing in detail the configuration of a high-speed big data analysis system according to an embodiment of the present invention.
9 is a diagram showing an example of a configuration of a first or second big data storage unit shown in FIG. 8.
10 is a diagram showing in detail the configuration of an API service providing system according to an embodiment of the present invention.

이하, 첨부되는 도면을 참고하여 본 발명의 실시예들에 대해 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다. 단수의 표현은 문맥상 명백하게 다르게 정의하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다.The meaning of the terms described in this specification should be understood as follows. Singular expressions should be understood as including plural expressions unless clearly defined differently in context, and terms such as “first” and “second” are used to distinguish one element from other elements, The scope of rights should not be limited by these terms.

"포함하다" 또는 "가지다" 등의 용어는 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is to be understood that terms such as "comprise" or "have" do not preclude the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof.

"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.The term “at least one” is to be understood as including all possible combinations from one or more related items. For example, the meaning of “at least one of the first item, the second item, and the third item” means 2 among the first item, the second item, and the third item, as well as the first item, the second item, and the third item. It means a combination of all items that can be presented from more than one.

도 1은 본 발명의 일 실시예에 따른 스마트팩토리 아키텍쳐를 보여주는 도면이다.1 is a diagram showing a smart factory architecture according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명에 따른 스마트팩토리 아키텍쳐(10)는 데이터 수집 시스템(1), 네트워크 시스템(2), 및 스마트팩토리 플랫폼(1000)을 포함한다.As shown in FIG. 1, the smart factory architecture 10 according to the present invention includes a data collection system 1, a network system 2, and a smart factory platform 1000.

데이터 수집 시스템(1)은 공정에서 발생되는 데이터를 수집한다. 일 실시예에 있어서, 데이터 수집 시스템(1)은 복수개의 공정들이 연속하여 수행되는 연속공정에서 발생되는 데이터를 수집할 수 있다. 연속공정이란 원재료를 이용하여 완제품을 생성하기 위한 복수개의 공정들이 연속적으로 수행되고, 각 공정의 산출물들이 서로 혼합되거나 특정 공정의 산출물의 상태가 변화하여 후속 공정으로 공급되는 방식의 공정을 의미한다. 철강공정이 이러한 연속공정의 대표적인 예에 해당한다. 이하에서는 설명의 편의를 위해, 데이터 수집 시스템(1)이 철강공정과 같은 연속공정에 적용되는 것으로 가정하여 설명하기로 한다.The data collection system 1 collects data generated in the process. In one embodiment, the data collection system 1 may collect data generated in a continuous process in which a plurality of processes are successively performed. The continuous process refers to a process in which a plurality of processes for producing a finished product using raw materials are continuously performed and the outputs of each process are mixed with each other or the state of the outputs of a specific process is changed and supplied to a subsequent process. The steel process is a representative example of such a continuous process. Hereinafter, for convenience of explanation, it is assumed that the data collection system 1 is applied to a continuous process such as a steel process.

철강공정은 제선공정, 제강공정, 연주공정, 및 압연공정 등과 같은 다양한 공정으로 구성되므로, 데이터 수집 시스템(1)은 제선공정, 제강공정, 연주공정, 및 압연공정 등과 같은 다양한 공정의 진행 과정에서 발생되는 마이크로 데이터(Micro Data)를 수집한다. 여기서, 마이크로 데이터는 다양한 센서 등을 통해 수집된 데이터 그 자체로서 원시 데이터(Raw Data)를 의미한다. 이하에서는, 설명의 편의를 위해 연속공정에서 수집된 마이크로 데이터를 수집 데이터로 표기하기로 한다.Since the steel process consists of various processes such as the iron making process, the steel making process, the casting process, and the rolling process, the data collection system 1 is in the process of various processes such as the iron making process, steel making process, casting process, and rolling process. Collect the generated micro data (Micro Data). Here, the micro data refers to raw data as data collected through various sensors. In the following, for convenience of explanation, micro data collected in a continuous process will be indicated as collected data.

데이터 수집 시스템(1)은 연속공정에서 발생된 데이터를 수집하기 위한 다양한 계측기, 센서, 액츄에이터 등을 포함한다. 데이터 수집 시스템(1)은 계측기, 센서, 액츄에이터 등에 의해 수집된 데이터를 통합하거나 제어하는 P/C, PLC(Programmable Logic Controller), DCS(Distributed Control System) 등을 더 포함할 수 있다.The data collection system 1 includes various measuring instruments, sensors, actuators, etc. for collecting data generated in a continuous process. The data collection system 1 may further include a P/C, a programmable logic controller (PLC), a distributed control system (DCS), or the like that integrates or controls data collected by a measuring instrument, a sensor, an actuator, or the like.

네트워크 시스템(2)은 수집 데이터를 스마트팩토리 플랫폼(1000)으로 전달한다. 네트워크 시스템(2)은 네트워크 케이블, 게이트웨이, 라우터, 또는 무선 AP(Access Point) 등을 포함할 수 있다.The network system 2 delivers the collected data to the smart factory platform 1000. The network system 2 may include a network cable, a gateway, a router, or a wireless access point (AP).

스마트팩토리 플랫폼(1000)은 네트워크 시스템(2)을 통해 수집 데이터를 수신한다. 스마트팩토리 플랫폼(1000)은 수집 데이터를 가공하고, 가공된 수집 데이터를 기초로 설비 또는 재료 등의 이상유무를 판단하며, 저장된 데이터에 대한 조회 및 분석 서비스를 제공한다. The smart factory platform 1000 receives collected data through the network system 2. The smart factory platform 1000 processes the collected data, determines whether there is an abnormality in equipment or materials based on the processed collected data, and provides a search and analysis service for stored data.

일 실시예에 있어서, 본 발명에 따른 스마트팩토리 플랫폼(1000)은 도 1에 도시된 바와 같이, 미들웨어 시스템(100), 분산병렬처리 시스템(200), 고속 빅데이터 분석시스템(300), 및 API 서비스 제공 시스템(400)을 포함한다.In one embodiment, the smart factory platform 1000 according to the present invention includes a middleware system 100, a distributed parallel processing system 200, a high-speed big data analysis system 300, and an API as shown in FIG. 1. It includes a service providing system 400.

미들웨어 시스템(100)은 수집 데이터를 전처리 한다. 미들웨어 시스템(100)은 Level 0 내지 Level 2의 장치들과 연결된다. 이하, 도 2 및 도 3을 참조하여 본 발명에 따른 미들웨어 시스템(100)에 대해 보다 구체적으로 설명한다.The middleware system 100 preprocesses the collected data. The middleware system 100 is connected to Level 0 to Level 2 devices. Hereinafter, the middleware system 100 according to the present invention will be described in more detail with reference to FIGS. 2 and 3.

도 2는 본 발명의 일 실시예에 따른 미들웨어 시스템의 구성을 보여주는 블록도이고, 도 3은 복수개의 프로세싱부 및 복수개의 큐 저장부를 포함하는 미들웨어 시스템의 구성을 보여주는 도면이다.2 is a block diagram showing a configuration of a middleware system according to an embodiment of the present invention, and FIG. 3 is a diagram illustrating a configuration of a middleware system including a plurality of processing units and a plurality of queue storage units.

도 2 및 도 3을 참조하여 보다 구체적으로 설명하면, 미들웨어 시스템(100)은 인터페이싱부(110) 및 큐 서버(120)를 포함한다. 또한, 미들웨어 시스템(100)은 미들웨어 관리부(130) 및 큐 관리부(140)를 더 포함할 수 있다,In more detail with reference to FIGS. 2 and 3, the middleware system 100 includes an interfacing unit 110 and a queue server 120. In addition, the middleware system 100 may further include a middleware management unit 130 and a queue management unit 140,

인터페이싱부(110)는 수집 데이터의 연계처리를 위해 수집 데이터들을 전처리한다. 인터페이싱부(110)는 수집 데이터를 표준화함으로써 수집 데이터를 전처리할 수 있다. 이를 위해, 인터페이싱부(110)는 파싱유닛(112), 표준화유닛(113), 필터링유닛(114), 및 전송유닛(115) 중 적어도 하나의 유닛을 포함한다.The interfacing unit 110 pre-processes the collected data for cooperative processing of the collected data. The interfacing unit 110 may pre-process the collected data by standardizing the collected data. To this end, the interfacing unit 110 includes at least one of the parsing unit 112, the standardization unit 113, the filtering unit 114, and the transmission unit 115.

파싱유닛(112)은 수집 데이터를 파싱하여 파싱 데이터를 생성한다. 수집 데이터는 복수개의 항목 ID를 포함하는 그룹 ID, 수집시간, 및 복수개의 측정값이 반복되는 구조를 가질 수 있다. 이 때, 항목 ID는 측정된 속성을 식별하기 위한 것으로 설비, 재료, 또는 제품의 속성들 중 어떤 속성이 측정된 것인지를 나타내는 값으로 온도나 습도 등이 될 수 있다. 그룹 ID는 특정 공장에서 위치 별 또는 각 공정 별로 몇 가지 항목을 그룹으로 편성한 대표값이 될 수 있다. 그룹 ID 내에 수집시간이 포함될 수 있다. The parsing unit 112 parses the collected data and generates parsed data. The collected data may have a structure in which a group ID including a plurality of item IDs, a collection time, and a plurality of measurement values are repeated. In this case, the item ID is for identifying the measured attribute, and is a value indicating which of the attributes of equipment, materials, or products has been measured, and may be temperature or humidity. The group ID may be a representative value of a group of several items for each location or each process in a specific factory. The collection time may be included in the group ID.

파싱유닛(112)은 수집 데이터가 별도의 구분없이 그룹 ID, 수집시간, 및 복수개의 측정값이 반복되는 형태로 수신되는 경우, 수집 데이터의 연계처리를 위해, 수집 데이터를 미리 설정된 레이아웃에 기초하여 파싱한다.When the collected data is received in a form in which a group ID, a collection time, and a plurality of measured values are repeatedly received without a separate distinction, the parsing unit 112 stores the collected data based on a preset layout for cooperative processing of the collected data. Parse.

파싱유닛(112)은 수집 데이터를 그룹 ID별로 파싱하고, 그룹 ID에 포함된 복수의 항목 ID와 복수의 측정값을 각각 매칭시켜 단일 항목 ID, 수집 시간, 및 단일 측정값을 갖는 형태의 파싱 데이터를 생성할 수 있다.The parsing unit 112 parses the collected data by group ID, and matches a plurality of item IDs included in the group ID with a plurality of measured values, respectively, and parses data in a form having a single item ID, collection time, and a single measurement value. Can be created.

파싱유닛(112)은 수집 데이터 전문에 대한 메시지 레이아웃에 기초하여 수집 데이터를 파싱할 수 있다.The parsing unit 112 may parse the collected data based on a message layout for the entire collection data.

표준화유닛(113)은 파싱 데이터를 표준화하여 표준화 데이터를 생성한다. 표준화유닛(113)은 각각의 파싱 데이터에 대해서, 미리 설정된 표준변환기준에 따라 각 파싱 데이터에 포함되어 있는 항목 ID를 표준항목 ID로 변환하고 파싱 데이터에 포함되어 있는 측정값의 단위 및 자리수를 통일시킴으로써 파싱 데이터를 표준화할 수 있다. 이때, 미리 설정된 표준변환기준은 다양한 센서 등의 항목 ID별로 설정된 표준항목 ID와 각 표준항목 ID에 따른 기준 단위 및 자리수를 포함할 수 있다.The standardization unit 113 standardizes the parsed data to generate standardized data. For each parsing data, the standardization unit 113 converts the item ID included in each parsed data into a standard item ID according to a preset standard conversion criterion, and unifies the unit and number of digits of the measurement value included in the parsed data. By doing so, you can standardize the parsed data. In this case, the preset standard conversion criterion may include a standard item ID set for each item ID such as various sensors, and a reference unit and number of digits according to each standard item ID.

표준화유닛(113)은 측정된 속성이 동일한 데이터들이 동일한 항목 ID를 갖도록 각 파싱 데이터에 포함된 항목 ID를 표준항목 ID로 변경할 수 있다.The standardization unit 113 may change the item ID included in each parsed data to the standard item ID so that data having the same measured attribute have the same item ID.

표준화유닛(113)은 파싱 데이터들 중 측정된 속성이 동일한 파싱 데이터들이 동일한 표준항목 ID를 갖도록 파싱 데이터를 전처리함으로써 연속공정에서 수집된 데이터들이 표준항목 ID에 기초하여 연계 처리될 수 있도록 한다.The standardization unit 113 pre-processes the parsed data so that the parsed data having the same measured attribute among the parsed data have the same standard item ID, so that the data collected in a continuous process can be linked and processed based on the standard item ID.

필터링유닛(114)은 미리 설정된 필터링 기준에 따라 표준화 데이터들 중 큐 서버(120)에 저장할 표준화 데이터를 선택한다. 일례로, 표준화 데이터의 종류에 따라 등급이 미리 설정되어 있고, 필터링유닛(114)은 상기 등급에 따라 큐 서버(120)에 저장할 표준화 데이터를 선택할 수 있다. 일 실시예에 있어서, 등급은 표준화 데이터의 표준항목 ID를 기준으로 중요도에 따라 결정될 수 있다. 필터링유닛(114)은 선택된 표준화 데이터를 전송유닛(115)으로 전송한다. The filtering unit 114 selects standardized data to be stored in the queue server 120 from among standardized data according to a preset filtering criterion. For example, a grade is preset according to the type of standardized data, and the filtering unit 114 may select standardized data to be stored in the queue server 120 according to the grade. In an embodiment, the grade may be determined according to importance based on the standard item ID of standardized data. The filtering unit 114 transmits the selected standardized data to the transmission unit 115.

전송유닛(115)은 필터링유닛(114)으로부터 제공되는 표준화 데이터를 큐 서버(120)에 저장한다. 전송유닛(115)은 표준화 데이터를 그룹 ID 또는 표준항목 ID별로 큐 서버(120)의 큐 저장부(121)에 저장할 수 있다.The transmission unit 115 stores standardized data provided from the filtering unit 114 in the queue server 120. The transmission unit 115 may store standardized data in the queue storage unit 121 of the queue server 120 for each group ID or standard item ID.

전송유닛(115)은 복수개의 큐 저장부(121)의 부하를 고려하여 부하가 적은 큐 저장부(121)에 표준화 데이터를 저장할 수 있다. 다른 실시예에 있어서, 복수개의 큐 서버(120) 들 중 공장이나 공정 별로 표준화 데이터가 저장될 큐 서버(120)가 미리 설정되어 있는 경우, 전송유닛(115)은 표준화 데이터를 해당 표준화 데이터에 대해 설정되어 있는 큐 서버(120)에 저장한다.The transmission unit 115 may store standardized data in the queue storage unit 121 having a low load in consideration of the loads of the plurality of queue storage units 121. In another embodiment, if the queue server 120 in which standardized data is stored for each factory or process among the plurality of queue servers 120 is preset, the transmission unit 115 transmits the standardized data to the corresponding standardized data. It is stored in the set queue server 120.

전송유닛(115)은 인터페이싱부(110)의 동작모드에 따라 표준화 데이터의 저장 여부를 결정할 수 있다. 구체적으로, 전송유닛(115)은 인터페이싱부(110)의 동작모드가 정상모드인 경우 표준화 데이터를 주기적으로 큐 서버(120)에 저장하고, 인터페이싱부(110)의 동작모드가 대기모드인 경우 표준화 데이터의 저장을 중지할 수 있다. 이때, 인터페이싱부(110)의 동작모드는 복수개의 큐 서버(120) 중 정상 동작하는 큐 서버(120)의 개수에 기초하여 결정될 수 있다.The transmission unit 115 may determine whether to store standardized data according to the operation mode of the interfacing unit 110. Specifically, the transmission unit 115 stores standardized data in the queue server 120 periodically when the operation mode of the interfacing unit 110 is in the normal mode, and standardizes when the operation mode of the interfacing unit 110 is in the standby mode. You can stop saving data. In this case, the operation mode of the interfacing unit 110 may be determined based on the number of queue servers 120 operating normally among the plurality of queue servers 120.

인터페이싱부(110)는 데이터 병합유닛(116)을 더 포함할 수 있다. 데이터 병합유닛(116)은 데이터 처리성능 향상을 위해 수집 데이터를 병합(Merge)하여 파싱유닛(112)으로 전달한다. 일 실시예에 있어서, 데이터 병합유닛(116)은 일정시간 간격(예: 0.1초, 1초, 1분 등)으로 수신되는 수집 데이터를 병합한다.The interfacing unit 110 may further include a data merging unit 116. The data merging unit 116 merges and transmits the collected data to the parsing unit 112 to improve data processing performance. In one embodiment, the data merging unit 116 merges collected data received at a predetermined time interval (eg, 0.1 second, 1 second, 1 minute, etc.).

연속공정의 특성상 아주 짧은 주기(예: 5㎳ 내지 20㎳)로 수집 데이터가 파싱유닛(112)으로 전달될 수 있는데, 데이터 병합유닛(116)은 모니터링을 위해 필요한 수집 데이터는 병합하지 않고 파싱유닛(112)으로 바로 전달하고, 나머지 수집 데이터는 일정시간 간격으로 병합하여 파싱유닛(112)으로 전달할 수 있다.Due to the nature of the continuous process, the collected data can be transferred to the parsing unit 112 in a very short period (e.g., 5 ms to 20 ms). The data merging unit 116 does not merge the collected data necessary for monitoring and It is transferred directly to 112, and the remaining collected data may be merged at regular time intervals and transferred to the parsing unit 112.

이 때, 모니터링을 위해 필요한 수집 데이터인지 여부는 수집 데이터의 중요도에 따라 설정될 수 있다. 예컨대, 이상이 발생할 경우 즉각적인 조치가 필요한 설비나 재료로부터 수집된 수집 데이터는 모니터링을 위해 필요한 수집 데이터로 설정될 수 있다.In this case, whether the data is collected data necessary for monitoring may be set according to the importance of the collected data. For example, when an abnormality occurs, collected data collected from facilities or materials that require immediate action may be set as collected data necessary for monitoring.

일 실시예에 있어서 미들웨어 시스템(100)은 인터페이싱부(110)의 동작모드를 관리하기 위해 미들웨어 관리부(130) 및 큐 관리부(140)를 더 포함할 수 있다.In one embodiment, the middleware system 100 may further include a middleware management unit 130 and a queue management unit 140 to manage the operation mode of the interfacing unit 110.

미들웨어 관리부(130)는 동작 확인유닛(131)에서 큐 서버(120)의 정상 동작여부를 판단하고, 모드 관리유닛(132)에서 인터페이싱부(110)의 동작 모드를 결정한다.The middleware management unit 130 determines whether the queue server 120 is normally operating in the operation check unit 131, and determines the operation mode of the interfacing unit 110 in the mode management unit 132.

이를 통해, 인터페이싱부(110)의 가용성을 높일 수 있고 큐 서버(120)의 장애시 능동적인 대응을 통해 인터페이싱부(110)의 2차 장애를 방지할 수 있다.Through this, the availability of the interfacing unit 110 can be increased, and a secondary failure of the interfacing unit 110 can be prevented by actively responding to a failure of the queue server 120.

동작 확인유닛(131)은 복수개의 큐 서버(120)의 정상 동작 여부를 판단한다. 일 실시예에 있어서 동작 확인유닛(131)은 검사신호에 대한 응답에 기초하여 복수개의 큐 서버(120)가 정상 동작하는지 판단할 수 있다. 동작 확인유닛(131)은 검사신호에 대해 큐 서버(120)로부터 응답이 없거나 미리 약속된 형식의 응답이 수신되지 않는 경우 해당 큐 서버(120)가 정상 동작하지 않는 것으로 판단한다.The operation check unit 131 determines whether the plurality of queue servers 120 operate normally. In an embodiment, the operation check unit 131 may determine whether the plurality of queue servers 120 operate normally based on a response to the test signal. The operation check unit 131 determines that the corresponding queue server 120 does not operate normally when there is no response from the queue server 120 or a response in a predetermined format is not received from the queue server 120 to the test signal.

모드 관리유닛(132)은 복수개의 큐 서버(120)의 동작 상태에 기초하여 인터페이싱부(110)의 동작 모드를 결정한다. 모드 관리유닛(132)은 인터페이싱부(110)의 동작모드를 인터페이싱부(110)로 전달한다.The mode management unit 132 determines an operation mode of the interfacing unit 110 based on the operation states of the plurality of queue servers 120. The mode management unit 132 transmits the operation mode of the interfacing unit 110 to the interfacing unit 110.

일 실시예에 있어서 모드 관리유닛(132)은 복수개의 큐 서버(120) 중에서 정상 동작하는 큐 서버(120)의 개수에 기초하여 인터페이싱부(110)의 동작모드를 결정할 수 있다. 구체적으로, 모드 관리유닛(132)은 데이터 수집 시스템(1)으로부터 수신되는 수집 데이터의 양과 정상 동작하는 큐 서버(120)의 개수를 비교하고, 수신되는 수집 데이터의 양이 정상 동작하는 큐 서버(120)의 용량을 초과하지 않는 경우 인터페이싱부(110)의 동작 모드를 정상 모드로 결정할 수 있다. 이 때, 수집 데이터의 양이란 실시간으로 수신되는 수집 데이터의 양 또는 주기적으로 수신되는 수집 데이터의 양에 대한 평균치를 의미할 수 있다.In one embodiment, the mode management unit 132 may determine an operation mode of the interfacing unit 110 based on the number of the queue servers 120 operating normally among the plurality of queue servers 120. Specifically, the mode management unit 132 compares the amount of collected data received from the data collection system 1 with the number of queue servers 120 operating normally, and the amount of collected data received is a queue server operating normally ( When the capacity of 120) is not exceeded, the operation mode of the interfacing unit 110 may be determined as a normal mode. In this case, the amount of collected data may mean an average value of the amount of collected data received in real time or the amount of collected data periodically received.

일례로, 모드 관리유닛(132)은 아래의 표 1과 같이 인터페이싱부(110)의 동작 모드를 결정할 수 있다.For example, the mode management unit 132 may determine an operation mode of the interfacing unit 110 as shown in Table 1 below.

큐 저장부 개수Number of queue storage 정상 동작하는 큐 저장부 개수Number of queue storage units that operate normally 비정상 동작하는 큐 저장부 개수Number of queue storage units that operate abnormally 동작모드Operation mode 33 33 00 정상모드Normal mode 33 22 1One 주의모드Caution mode 33 1One 22 대기모드Standby mode 33 00 33 대기모드Standby mode

모드 관리유닛(132)에 의해 정상모드로 결정되면 인터페이싱부(110)는 복수개의 큐 서버(120) 중 미리 설정된 큐 서버(120)에 표준화 데이터를 저장한다. 모드 관리유닛(132)에 의해 주의모드로 결정되면 인터페이싱부(110)는 비정상 동작하는 큐 서버(120)를 제외한 나머지 큐 서버(120)에 표준화 데이터를 저장한다. 모드 관리유닛(132)에 의해 대기모드로 결정되면 인터페이싱부(110)는 수집 데이터 수신 및 표준화 데이터 저장을 중지한다.이때, 주의모드는 복수개의 큐 서버(120) 중 일부가 정상 동작하지 않지만, 나머지 큐 서버(120)를 통해 인터페이싱부(110)가 실시간으로 표준화 데이터를 저장할 수 있는 상황에서의 동작모드를 나타낸다. 모드 관리유닛(132)은 복수개의 큐 서버(120) 중 적어도 2개 이상의 큐 서버(120)가 정상 동작하는 경우에 동작모드를 주의모드로 결정할 수 있다.When the mode management unit 132 determines the normal mode, the interfacing unit 110 stores standardized data in the queue server 120 set in advance among the plurality of queue servers 120. When the mode management unit 132 determines the attention mode, the interfacing unit 110 stores standardized data in the queue servers 120 other than the queue server 120 operating abnormally. When the mode management unit 132 determines the standby mode, the interfacing unit 110 stops receiving collected data and storing standardized data. At this time, in the caution mode, some of the plurality of queue servers 120 do not operate normally. It represents an operation mode in a situation in which the interfacing unit 110 can store standardized data in real time through the remaining queue server 120. The mode management unit 132 may determine the operation mode as the attention mode when at least two or more queue servers 120 among the plurality of queue servers 120 operate normally.

큐 관리부(140)는 복수개의 큐 서버(120) 각각에 대응되도록 구비된다. 큐 관리부(140)는 각각의 큐 서버(120)에 대한 메타 데이터를 관리하고, 큐 서버(120)의 정상 동작 여부를 확인한다. 이를 위해 큐 관리부(140)는 메타 데이터 관리유닛(141)을 포함할 수 있다.The queue management unit 140 is provided to correspond to each of the plurality of queue servers 120. The queue management unit 140 manages meta data for each queue server 120 and checks whether the queue server 120 operates normally. To this end, the queue management unit 140 may include a meta data management unit 141.

메타 데이터 관리유닛(141)은 대응되는 큐 서버(120)의 큐 저장부(121)에 대한 메타 데이터를 관리한다. 일례로, 메타 데이터 관리유닛(141)은 기본 사양정보, 접속 정보, 토픽 및 파티션과 같은 구성 정보 등의 메타 데이터를 관리하고, 메타 데이터에 기초하여 인터페이싱부(110)로 데이터를 저장할 토픽 및 파티션에 대한 정보를 제공할 수 있다.The meta data management unit 141 manages meta data for the queue storage unit 121 of the corresponding queue server 120. As an example, the meta data management unit 141 manages meta data such as basic specification information, access information, and configuration information such as topics and partitions, and the topics and partitions to store data to the interfacing unit 110 based on the meta data. You can provide information about

복수개의 큐 서버(120) 중 일부가 정상 동작하지 않는 경우, 인터페이싱부(110)는 큐 서버(120)의 메타 데이터를 이용하여 저장 가능한 큐 서버(120)의 위치를 빠르게 찾아 파싱 데이터를 저장할 수 있다.When some of the plurality of queue servers 120 do not operate normally, the interfacing unit 110 can quickly find the location of the storable queue server 120 using the metadata of the queue server 120 and store the parsed data. have.

큐 서버(120)는 표준화 데이터를 실시간으로 처리하기 전에 임시로 보관한다. 이를 위해, 큐 서버(120)는 적어도 하나의 큐 저장부(121)를 포함한다.The queue server 120 temporarily stores standardized data before processing it in real time. To this end, the queue server 120 includes at least one queue storage unit 121.

큐 저장부(121)는 표준화 데이터를 일정시간 동안 보관하기 위한 저장부로 데이터 유실 방지를 위해 메모리가 아닌 디스크 기반으로 데이터를 저장할 수 있다. 큐 저장부(121)에서 데이터를 저장하는 공간은 토픽(Topic)으로 구분될 수 있고, 큐 저장부(121)는 동일 토픽 내의 파티션을 여러 개 분리하여 병렬로 처리하는 것도 가능하다.The queue storage unit 121 is a storage unit for storing standardized data for a predetermined period of time, and may store data based on a disk rather than a memory to prevent data loss. The space for storing data in the queue storage unit 121 may be divided into topics, and the queue storage unit 121 may separate several partitions within the same topic and process them in parallel.

일 실시예에 있어서 도 3에 도시된 바와 같이, 큐 서버(120)는 복수개로 구현되고, 복수개의 큐 서버(120)가 서로 클러스터링될 수 있다. 이러한 경우, 전송유닛(115)이 복수개의 큐 서버(120) 중 어느 하나의 큐 서버(120)에 파싱 데이터를 저장하면 나머지 큐 서버(120)에도 동일한 파싱 데이터가 저장된다.In one embodiment, as shown in FIG. 3, a plurality of queue servers 120 may be implemented, and a plurality of queue servers 120 may be clustered with each other. In this case, when the transmission unit 115 stores the parsed data in any one of the plurality of queue servers 120, the same parsed data is also stored in the other queue servers 120.

일 실시예에 있어서, 큐 서버(120)에 저장되는 파싱 데이터는 분산병렬처리시스템(200)이 큐 서버(120)로부터 페치(Fetch)하는 데이터 그룹 별로 고유한 그룹 ID가 할당될 수 있다. 이에 따라, 고유한 그룹 ID 별로 데이터 페치 주소가 관리될 수 있어, 데이터를 순차적으로 읽고 쓰는 큐 형태로 데이터가 저장 및 제공될 수 있다.In one embodiment, the parsed data stored in the queue server 120 may be assigned a unique group ID for each data group fetched by the distributed parallel processing system 200 from the queue server 120. Accordingly, data fetch addresses can be managed for each unique group ID, so that data can be stored and provided in the form of a queue that reads and writes data sequentially.

이러한 실시예에 따르는 경우, 복수개의 인터페이싱부(110)는 데이터 수집 시스템(1)의 규모 및 공장의 물리적 위치 등에 따라 추가하는 형태로 확장될 수 있으며, 각각의 인터페이싱부(110)는 고가용성(High Availability; HA)을 위해 이중화 구조로 구현될 수 있다.According to this embodiment, the plurality of interfacing units 110 may be expanded in a form of addition depending on the size of the data collection system 1 and the physical location of the factory, and each interfacing unit 110 is highly available ( It can be implemented in a redundant structure for high availability (HA).

또한, 인터페이싱부(110)는 수집 데이터의 표준화가 완료되면 복수개의 큐 서버(120) 중 1대의 큐 서버(120)를 선택하여 표준화 데이터를 저장한다. 이 때, 표준화 데이터를 저장할 큐 서버(120)를 선택하는 기준은 다양한 룰 중에서 선택될 수 있으며, 일례로 부하가 가장 낮은 큐 서버(120)를 선택하거나, 순차적으로 선택하는 방식, 또는 수집 데이터를 수집한 센서 별로 저장할 큐 서버(120)를 사전에 미리 저장하여 선택하는 것이 가능하다.In addition, when standardization of the collected data is completed, the interfacing unit 110 selects one queue server 120 from among the plurality of queue servers 120 and stores the standardized data. At this time, the criterion for selecting the queue server 120 to store the standardized data may be selected from a variety of rules, for example, selecting the queue server 120 having the lowest load, a method of sequentially selecting, or collecting data. It is possible to pre-store and select the queue server 120 to be stored for each collected sensor.

또한, 도 3에 도시된 바와 같이 각 인터페이싱부(110)가 미들웨어 관리부(130)를 각각 포함할 수 있다. 각 미들웨어 관리부(130)는 복수개의 큐 저장부(120)의 정상 동작 여부를 판단하고 대응되는 인터페이싱부(110)의 동작 모드를 결정한다.In addition, as shown in FIG. 3, each interfacing unit 110 may each include a middleware management unit 130. Each middleware management unit 130 determines whether or not the plurality of queue storage units 120 operate normally, and determines an operation mode of the corresponding interfacing unit 110.

다시 도 1을 참조하면, 분산병렬처리시스템(200)은 미들웨어 시스템(100)에서 전달되는 표준화 데이터를 가공한다. 일 실시예에 있어서, 분산병렬처리시스템(200)은 표준화 데이터에 공정 식별자가 매핑된 매핑 데이터를 생성하고, 각 공정 별로 수집된 수집 데이터들의 연계 처리를 위해 각 공정에서의 매핑 데이터들을 미리 정해진 기준에 따라 정렬한다.Referring back to FIG. 1, the distributed parallel processing system 200 processes standardized data transmitted from the middleware system 100. In one embodiment, the distributed parallel processing system 200 generates mapping data in which process identifiers are mapped to standardized data, and uses the mapping data in each process as a predetermined standard for linkage processing of collected data collected for each process. Sort according to.

이하, 도 4 내지 도 7을 참조하여 본 발명에 따른 분산병렬처리시스템(200)의 구성에 대해 보다 구체적으로 설명한다.Hereinafter, the configuration of the distributed parallel processing system 200 according to the present invention will be described in more detail with reference to FIGS. 4 to 7.

도 4는 본 발명의 일 실시예에 따른 분산병렬처리시스템의 구성을 구체적으로 보여주는 도면이다. 도 4에 도시된 바와 같이 본 발명의 일 실시예에 따른 분산병렬처리시스템(200)은 프로세싱부(210) 및 메모리부(220)를 포함한다.4 is a diagram showing in detail the configuration of a distributed parallel processing system according to an embodiment of the present invention. As shown in FIG. 4, the distributed and parallel processing system 200 according to an embodiment of the present invention includes a processing unit 210 and a memory unit 220.

프로세싱부(210)는 표준화 데이터에 공정 식별자를 매핑하여 매핑 데이터를 생성하고, 조업-설비-품질 등 영역간 데이터를 연계분석할 수 있도록 매핑 데이터를 정렬한다. 또한, 프로세싱부(210)는 센서가 없어 데이터가 수집되지 않은 지점이나 수집 주기 중간에 발생한 누락 데이터를 예측한다.The processing unit 210 generates mapping data by mapping process identifiers to standardized data, and arranges the mapping data so that data between areas such as operation-facility-quality can be linked and analyzed. In addition, the processing unit 210 predicts a point where no data has been collected because there is no sensor or missing data that occurs in the middle of the collection period.

이를 위해, 프로세싱부(210)는 페치(Fetch) 수행유닛(211), 공정매핑 수행유닛(213), 데이터 보정 수행유닛(215), 및 데이터 정렬 수행유닛(216) 중 적어도 하나의 유닛을 포함한다. 또한, 프로세싱부(210)는 설비 이상감지 수행유닛(217) 및 품질 이상감지 수행유닛(218)을 더 포함할 수 있다.To this end, the processing unit 210 includes at least one of a fetching unit 211, a process mapping unit 213, a data correction unit 215, and a data alignment unit 216. do. In addition, the processing unit 210 may further include a facility abnormality detection performing unit 217 and a quality abnormality detection performing unit 218.

일 실시예에 있어서, 도 4에 도시된 복수개의 수행유닛(211~218)들은 프로세싱부(210)에 배포되어 각각의 기능을 구현하는 어플리케이션(Application)으로 구현될 수 있고, 이러한 어플리케이션들이 프로세싱부(210)에 작업 공간을 생성한 후 복수개의 쓰레드(Thread)를 생성함으로써 각 수행유닛(211~218) 별로 할당된 기능들을 수행하게 된다.In one embodiment, a plurality of execution units 211 to 218 shown in FIG. 4 may be distributed to the processing unit 210 to be implemented as an application that implements each function, and these applications are After creating a work space in 210, a plurality of threads are created to perform functions assigned to each execution unit 211 to 218.

페치 수행유닛(211)은 미들웨어 시스템(100)의 큐 저장부(121)로부터 표준화 데이터를 독출하여 메모리부(220)에 저장한다. 페치 수행유닛(211)은 복수의 큐 저장부(121) 각각에 대해서 이전에 데이터를 조회한 위치 정보를 기억함으로써, 이전까지 읽어 들인 데이터의 다음 데이터를 읽어 들일 수 있다.The fetch execution unit 211 reads standardized data from the queue storage unit 121 of the middleware system 100 and stores it in the memory unit 220. The fetch execution unit 211 may read the next data of the previously read data by storing location information of previously inquired data for each of the plurality of queue storage units 121.

이때, 인터페이싱부(110)가 연속공정에서 수집된 수집 데이터들의 연계 처리를 위해 표준화 데이터를 그룹 ID 또는 표준항목 ID 별로 큐 저장부(121)에 저장한 경우, 페치 수행유닛(211)은 큐 저장부(121)에 저장된 표준화 데이터를 그룹 ID 또는 표준항목 ID 별로 독출한다.At this time, when the interfacing unit 110 stores the standardized data in the queue storage unit 121 for each group ID or standard item ID for linking processing of collected data collected in a continuous process, the fetch execution unit 211 stores the queue. Standardized data stored in the unit 121 is read for each group ID or standard item ID.

공정매핑 수행유닛(213)은 페치 수행유닛(211)에 의해 독출된 표준화 데이터에 해당 표준화 데이터가 수집된 공정을 식별하기 위한 공정 식별자를 매핑하여 매핑 데이터를 생성한다.The process mapping execution unit 213 generates mapping data by mapping a process identifier for identifying a process in which the corresponding standardized data is collected to the standardized data read by the fetch performing unit 211.

일 실시예에 있어서, 공정매핑 수행유닛(213)은 각 공정을 수행하는 설비의 설비 식별자를 표준화 데이터에 매핑하여 제1 매핑 데이터를 생성하거나, 해당 설비에 의해 가공되는 재료의 재료 식별자를 표준화 데이터 또는 제1 매핑 데이터에 매핑하여 제2 매핑 데이터를 생성할 수 있다. 이를 위해, 매핑 수행유닛(213)은 설비매핑 수행유닛(213a) 및 재료매핑 수행유닛(213b)을 포함할 수 있다.In one embodiment, the process mapping execution unit 213 generates first mapping data by mapping a facility identifier of a facility performing each process to standardized data, or standardizes the material identifier of a material processed by the facility. Alternatively, second mapping data may be generated by mapping to the first mapping data. To this end, the mapping unit 213 may include a facility mapping unit 213a and a material mapping unit 213b.

설비매핑 수행유닛(213a)은 표준화 데이터에 해당 표준화 데이터가 수집된 설비의 설비 식별자를 매핑하여 제1 매핑 데이터를 생성한다. 설비매핑 수행유닛(213a)은 해당 표준화 데이터가 수집된 수집시간이나 해당 표준화 데이터를 수집한 센서의 속성정보에 기초하여 해당 표준화 데이터에 매핑할 설비 식별자를 획득할 수 있다. 일 실시예에 있어서, 설비 식별자는 각 설비 별로 부여된 설비 번호일 수 있다.The facility mapping execution unit 213a generates first mapping data by mapping the facility identifier of the facility for which the corresponding standardized data is collected to the standardized data. The facility mapping execution unit 213a may acquire a facility identifier to be mapped to the standardized data based on a collection time at which the standardized data is collected or attribute information of a sensor that has collected the standardized data. In one embodiment, the facility identifier may be a facility number assigned to each facility.

재료매핑 수행유닛(213b)은 메모리부(220)에서 독출된 표준화 데이터 또는 설비매핑 수행유닛(213a)에 의해 생성된 제1 매핑 데이터에 해당 표준화 데이터가 수집된 설비에서 가공된 재료의 재료 식별자를 매핑하여 제2 매핑 데이터를 생성한다. 재료매핑 수행유닛(213b)은 각 공정에서 수행되는 작업 지시 정보에 기초하여 해당 표준화 데이터가 수집된 설비를 통해 생성되는 재료의 재료 식별자를 획득하고, 획득된 재료 식별자를 제1 매핑 데이터에 매핑한다.The material mapping unit 213b stores the material identifier of the material processed in the facility for which the standard data is collected in the standardized data read from the memory unit 220 or the first mapping data generated by the facility mapping unit 213a. Mapping to generate second mapping data. The material mapping execution unit 213b acquires the material identifier of the material generated through the facility for which the corresponding standardized data is collected based on the work instruction information performed in each process, and maps the obtained material identifier to the first mapping data. .

일 실시예에 있어서, 재료 식별자는 각 재료 별로 부여되어 있는 재료번호일 수 있다.In one embodiment, the material identifier may be a material number assigned to each material.

데이터 보정 수행유닛(215)은 매핑 데이터 중 누락된 데이터를 추가하여 매핑 데이터를 보정한다. 데이터 보정 수행유닛(215)은 누락된 데이터가 수집되었어야 하는 영역과 가장 인접한 위치에서의 매핑 데이터 또는 누락이 발생된 시간과 가장 인접한 수집시간의 매핑 데이터를 이용하여 누락된 데이터를 보정할 수 있다.The data correction performing unit 215 corrects the mapping data by adding missing data among the mapping data. The data correction performing unit 215 may correct the missing data by using the mapping data at the location closest to the area where the missing data should have been collected, or the mapping data at the collection time closest to the time when the missing data should have been collected. .

일 실시예에 있어서, 데이터 보정 수행유닛(215)은 매핑 데이터의 보정을 위해, 매핑 데이터에 포함된 수집시간을 미리 정해진 수집주기에 일치시킬 수 있다. 예를 들어, 20ms의 수집주기로 연속공정 데이터가 저장되는 경우 데이터 보정 수행유닛(215)은 수집시간이 15시01분11초0005ms인 매핑 데이터의 수집시간을 15시01분11초0000ms로 보정하고, 수집시간이 15시01분11초0050ms인 매핑 데이터의 수집 시간을 15시01분11초0040ms로 보정할 수 있다.In an embodiment, the data correction performing unit 215 may match a collection time included in the mapping data with a predetermined collection period to correct the mapping data. For example, when continuous process data is stored with a collection cycle of 20 ms, the data correction unit 215 corrects the collection time of the mapping data with a collection time of 15:01:11 seconds 0005 ms to 15:01:11 seconds 0000 ms, and , The collection time of the mapping data with a collection time of 15:01:11 seconds 0050ms can be corrected to 15:01:11 seconds 0040ms.

데이터 정렬 수행유닛(216)은 매핑 데이터 또는 보정된 매핑 데이터를 각 공정의 데이터들 간의 연계처리를 위해 정렬한다.The data alignment unit 216 arranges the mapping data or the corrected mapping data for linking processing between data of each process.

데이터 정렬 수행유닛(216)은 연속공정에서 수집된 수집 데이터들간의 연계처리를 위해 동일한 재료 식별자가 매핑되어 있는 매핑 데이터들을 재료 단위로 시간 순서에 따라 정렬하여 제1 정렬 데이터를 생성한다.The data alignment performing unit 216 generates first alignment data by arranging mapping data to which the same material identifier is mapped in a chronological order in a material unit for linking processing between collected data collected in a continuous process.

데이터 정렬 수행유닛(216)은 제1 정렬 데이터들을 동일한 재료 식별자에 대응되는 재료 상에서 해당 데이터가 수집된 수집위치를 기준으로 정렬하여 제2 정렬 데이터를 생성한다.The data alignment performing unit 216 sorts the first alignment data on a material corresponding to the same material identifier based on a collection location at which the data is collected to generate second alignment data.

이때, 수집위치는 재료의 길이, 재료의 이동속도, 및 수집 데이터의 수집주기 중 적어도 하나를 이용하여 결정될 수 있다. 예컨대, 데이터 정렬 수행유닛(216)은 재료의 이동속도와 수집주기를 곱한 값 및 재료의 전체 길이를 기준으로 재료 상에서 각 주기 별로 수집 데이터가 수집된 수집위치를 결정할 수 있다. 이에 따라, 데이터 정렬 수행유닛(216)은 제1 정렬 데이터를 재료 상에서 일 방향으로 소정의 위치에서 측정된 데이터로 정렬할 수 있다.In this case, the collection position may be determined using at least one of the length of the material, the moving speed of the material, and the collection period of the collected data. For example, the data sorting unit 216 may determine a collection position at which collection data is collected for each period on the material based on a value obtained by multiplying the movement speed of the material by the collection period and the total length of the material. Accordingly, the data alignment unit 216 may align the first alignment data into data measured at a predetermined position in one direction on the material.

데이터 정렬 수행유닛(216)은 서로 다른 수집주기로 제1 공정 및 제2 공정으로부터 각각 수집된 수집 데이터의 연계 처리를 위해, 각 재료 상에서 미리 정해진 간격으로 설정된 기준점들과 제2 정렬 데이터의 수집위치 간의 거리를 기초로 각 기준점들에서의 측정값을 산출하고, 산출된 측정값을 기초로 각 기준점들에서의 기준 데이터를 생성한다.The data alignment performing unit 216 is used for linking processing of the collected data collected from the first and second processes at different collection cycles, between reference points set at predetermined intervals on each material and the collection location of the second alignment data. A measurement value at each reference point is calculated based on the distance, and reference data at each reference point is generated based on the calculated measurement value.

데이터 정렬 수행유닛(216)은 제2 정렬 데이터 및 기준점들에서의 기준 데이터들을 재료 상에서 일 방향으로 순차적으로 정렬한다. 일 실시예에 있어서, 일 방향은 재료의 길이 방향, 재료의 폭 방향, 및 재료의 두께 방향 중 적어도 하나가 될 수 있다.The data alignment performing unit 216 sequentially arranges the second alignment data and the reference data at the reference points on the material in one direction. In one embodiment, one direction may be at least one of a length direction of a material, a width direction of a material, and a thickness direction of a material.

이하에서는 데이터 정렬 수행유닛(216)이 기준 데이터들을 재료 상에서 길이 방향으로 정렬하는 예를 구체적으로 설명한다.Hereinafter, an example in which the data alignment performing unit 216 arranges reference data on a material in the longitudinal direction will be described in detail.

제1 공정에서 가공된 제1 재료의 길이 방향으로 제1 기준점들이 소정 간격으로 설정되어 있고, 제2공정에서 가공된 제2 재료의 길이 방향으로 제2 기준점들이 소정의 간격으로 설정되어 있다. 이러한 경우, 제1 기준점들에서의 제1 기준 데이터에는 제1 재료에 대응되는 제1 재료 식별자가 매핑되어 있고, 제2 기준점들에서의 제2 기준 데이터들에는 제2 재료에 대응되는 제2 재료 식별자가 매핑되어 있다. 따라서, 각 재료 별로 재료 식별자가 매핑되어 있는 재료 가계도(미도시) 상에서 제1 재료 식별자 및 제2 재료 식별자에 기초하여 제1 기준 데이터들과 제2 기준 데이터들이 연계된다.First reference points are set at predetermined intervals in the longitudinal direction of the first material processed in the first process, and second reference points are set at predetermined intervals in the longitudinal direction of the second material processed in the second process. In this case, the first material identifier corresponding to the first material is mapped to the first reference data at the first reference points, and the second material identifier corresponding to the second material is mapped to the second reference data at the second reference points. The identifier is mapped. Accordingly, the first reference data and the second reference data are linked based on the first material identifier and the second material identifier on a material family tree (not shown) in which a material identifier is mapped for each material.

즉, 재료 가계도에는 각 재료 식별자가 트리 형태로 연결되어 있어, 이러한 재료 가계도를 참조함으로써 제1 공정 및 제2 공정을 순차적으로 통과하면서 생성되는 재료에게 할당된 재료 식별자를 통해 각 공정의 매핑 데이터들이 서로 연계될 수 있다.In other words, each material identifier is connected in a tree form in the material family tree, and mapping data of each process is displayed through the material identifier assigned to the material that is generated while sequentially passing through the first process and the second process by referring to this material family tree. They can be linked to each other.

데이터 정렬 수행유닛(216)은 상기와 같이 재료의 길이 방향으로 정렬된 제2 정렬 데이터 및 기준 데이터들을 메모리부(220)에 저장한다. The data alignment unit 216 stores the second alignment data and reference data arranged in the length direction of the material in the memory unit 220 as described above.

이와 같이, 프로세싱부(210)는 표준화 데이터에 설비 식별자 또는 재료 식별자와 같은 공정 식별자를 매핑하고, 매핑 데이터를 정렬함으로써 연속공정에서 수집된 수집 데이터들이 연계 처리될 수 있도록 한다.In this way, the processing unit 210 maps a process identifier such as a facility identifier or a material identifier to standardized data, and arranges the mapping data so that the collected data collected in a continuous process can be linked and processed.

설비이상감지 수행유닛(217)은 설비매핑 수행유닛(213a)로부터 제1 매핑 데이터를 전달받고, 미리 설정된 설비이상판단기준에 따라 설비이상여부를 판단한다. 판단결과, 특정 설비에 이상이 발생한 것으로 판단되면, 설비이상감지 수행유닛(217)은 메모리부(220)에 판단 결과를 저장한다.The facility abnormality detection execution unit 217 receives the first mapping data from the equipment mapping execution unit 213a, and determines whether or not there is a facility abnormality according to a predetermined equipment abnormality determination criterion. As a result of the determination, if it is determined that an abnormality has occurred in a specific facility, the facility abnormality detection unit 217 stores the determination result in the memory unit 220.

품질이상감지 수행유닛(218)은 데이터 정렬 수행유닛(216)에 의해 정렬된 제2 정렬 데이터를 기초로 미리 설정된 품질이상판단기준에 따라 품질이상여부를 판단한다. 판단결과, 특정 재료의 품질에 이상이 발생한 것으로 판단되면, 품질이상감지 수행유닛(218)은 메모리부(220)에 판단 결과를 저장한다.The quality abnormality detection performing unit 218 determines whether or not there is a quality abnormality according to a predetermined quality abnormality determination criterion based on the second alignment data arranged by the data alignment execution unit 216. As a result of the determination, when it is determined that an abnormality has occurred in the quality of a specific material, the quality abnormality detection unit 218 stores the determination result in the memory unit 220.

일 실시예에 있어서, 품질이상감지 수행유닛(218)은 제2 정렬 데이터의 평균 및 오차 예측 등의 작업을 통해 품질이상여부 판단식의 레퍼런스로 활용하기 위한 매크로(Macro) 데이터를 생성하고, 제2 정렬 데이터를 품질이상여부 판단식에 입력하여 그 결과에 따라 품질이상을 판단할 수 있다.In one embodiment, the quality abnormality detection performing unit 218 generates macro data to be used as a reference for a quality abnormality determination formula through operations such as average and error prediction of the second alignment data, and 2 By entering the alignment data into the quality abnormality determination formula, quality abnormality can be determined according to the result.

상술한 실시예에 있어서는 분산병렬처리시스템(200)이 하나의 프로세싱부(210) 및 하나의 메모리부(220)를 통해 표준화 데이터를 매핑 및 정렬하는 것으로 설명하였지만, 변형된 실시예에 있어서 분산병렬처리시스템(200)은 도 5에 도시된 바와 같이 복수개의 프로세싱부(210a, 210b, 210c) 및 복수개의 메모리부(220)를 이용하여 표준화 데이터를 매핑 및 정렬할 수도 있다.In the above-described embodiment, it has been described that the distributed parallel processing system 200 maps and arranges standardized data through one processing unit 210 and one memory unit 220, but in a modified embodiment, the distributed parallel processing system 200 The processing system 200 may map and arrange standardized data using a plurality of processing units 210a, 210b, and 210c and a plurality of memory units 220 as shown in FIG. 5.

이하, 도 4 및 도 5를 참조하여 변형된 실시예에 따른 분산병렬처리시스템에 대해 설명한다.Hereinafter, a distributed parallel processing system according to a modified embodiment will be described with reference to FIGS. 4 and 5.

도 5는 복수개의 프로세싱부 및 복수개의 메모리부를 포함하는 분산병렬처리시스템의 구성을 개략적으로 보여주는 도면이다. 분산병렬처리시스템(200)은 복수개의 프로세싱부(210a, 210b, 210c), 복수개의 메모리부(220a, 220b, 220c), 및 수행유닛 배포부(230)를 포함한다.5 is a diagram schematically showing the configuration of a distributed parallel processing system including a plurality of processing units and a plurality of memory units. The distributed parallel processing system 200 includes a plurality of processing units 210a, 210b, 210c, a plurality of memory units 220a, 220b, 220c, and an execution unit distribution unit 230.

복수개의 프로세싱부(210a, 210b, 210c)에는 표준화 데이터를 매핑 및 정렬하는 복수개의 수행유닛(211~218)들 중 하나 이상의 수행유닛(211~218)이 분산되어 배포된다. 복수개의 프로세싱부(210a, 210b, 210c)는 페치 수행유닛(211), 설비매핑 수행유닛(213a), 재료매핑 수행유닛(213b), 데이터 보정 수행유닛(215), 데이터 정렬 수행유닛(216), 설비이상감지 수행유닛(217), 및 품질이상감지 수행유닛(218) 중 적어도 하나의 수행유닛을 각각 분산하여 병렬처리하고, 최종 결과 데이터를 메모리부(220)에 저장함으로써, 미들웨어 시스템(100)으로부터 전달되는 표준화 데이터를 실시간으로 처리하게 된다.One or more execution units 211 to 218 among the plurality of execution units 211 to 218 for mapping and sorting standardized data are distributed and distributed to the plurality of processing units 210a, 210b, and 210c. The plurality of processing units 210a, 210b, and 210c include a fetching unit 211, a facility mapping unit 213a, a material mapping unit 213b, a data correction unit 215, and a data alignment unit 216. , By distributing and parallel processing at least one of the equipment abnormality detection execution unit 217, and the quality abnormality detection execution unit 218, and storing the final result data in the memory unit 220, the middleware system 100 Standardized data transmitted from) is processed in real time.

일 실시예에 있어서, 복수개의 프로세싱부(210a, 210b, 210c)는 클러스터링 구조로 구성될 수 있다. 이와 같이, 복수개의 프로세싱부(210a, 210b, 210c)는 클러스터링 구조를 가지기 때문에 특정 프로세싱부에 장애가 발생하면 장애가 발생된 프로세싱부에서 실행중이던 수행유닛(211~218)을 다른 프로세싱부로 이동시킬 수 있어 가용성을 확보할 수 있게 된다.In an embodiment, the plurality of processing units 210a, 210b, and 210c may be configured in a clustering structure. As described above, since the plurality of processing units 210a, 210b, and 210c have a clustering structure, when a failure occurs in a specific processing unit, the execution units 211 to 218 running in the failed processing unit can be moved to another processing unit. Availability can be ensured.

복수개의 메모리부(220)에는 복수개의 프로세싱부(210a, 210b, 210c)에서 처리된 데이터가 저장된다. 일 실시예에 있어서, 처리 성능을 높이고 장애시 가용성을 보장하기 위해 복수개의 메모리부(220)는 전술한 큐 저장부(121)와 같이 클러스터링 구조를 가질 수 있다. Data processed by the plurality of processing units 210a, 210b, and 210c are stored in the plurality of memory units 220. In an embodiment, in order to increase processing performance and ensure availability in case of failure, the plurality of memory units 220 may have a clustering structure like the above-described queue storage unit 121.

복수개의 메모리부(220)는 고가용성(High Availability; HA)을 위해 이중화 구조로 구비될 수 있다. 즉, 각각의 메모리부(220)는 마스터 인스턴스(M) 및 슬레이브 인스턴스(S)를 포함한다. 이러한 경우 제1 메모리부(220a)에 포함된 마스터 인스턴스(M)과 제2 메모리부(220b)에 포함된 슬레이브 인스턴스(S)가 한 쌍으로 동작하고, 제2 메모리부(220b)에 포함된 마스터 인스턴스(M)와 제1 메모리부(220a)에 포함된 슬레이브 인스턴스(S)가 한 쌍으로 동작할 수 있다.The plurality of memory units 220 may be provided in a redundant structure for high availability (HA). That is, each memory unit 220 includes a master instance (M) and a slave instance (S). In this case, the master instance M included in the first memory unit 220a and the slave instance S included in the second memory unit 220b operate as a pair, and are included in the second memory unit 220b. The master instance M and the slave instance S included in the first memory unit 220a may operate as a pair.

슬레이브 인스턴스(S)에 기록된 정렬 데이터는 장애시 복구를 위해 각 데이터가 스크립터(Scripter) 형태의 파일로 백업될 수 있다. 이때, 스크립터 형태의 파일이란 데이터의 쓰기 또는 읽기와 관련된 커맨드가 해당 데이터와 함께 저장되어 있는 형태의 파일을 의미한다. As for the alignment data recorded in the slave instance S, each data may be backed up as a scripter-type file for recovery in case of a failure. In this case, the scripter type file means a file in which commands related to writing or reading data are stored together with the data.

각 메모리부(220)의 마스터 인스턴스(M) 및 슬레이브 인스턴스(S)는 싱글 스레드(Rhread) 형태로 구성되고, 쓰기 및 읽기 별로 인스턴스 및 포트가 분리될 수 있다.The master instance M and the slave instance S of each memory unit 220 are configured in a single thread (Rhread) type, and instances and ports may be separated for each write and read.

이하, 도 6을 참조하여 표준화 데이터의 매핑 및 정렬 작업을 분산병렬처리하는 방법을 예를 들어 설명한다.Hereinafter, a method of performing distributed parallel processing of standardized data mapping and alignment will be described with reference to FIG. 6 as an example.

도 6에 도시된 바와 같이, 제1 프로세싱부(210a)에 페치 수행유닛(211)이 배포되어 있기 때문에, 제1 프로세싱부(210a)는 페치 수행유닛(211)을 실행시킴으로써 페치 수행유닛(211)이 큐 저장부(121)에 접속하여 표준화 데이터를 페치하고, 페치 데이터를 제1 메모리부(220a)의 마스터 인스턴스(M)에 저장하도록 한다. 이때, 제2 메모리부(220b)의 슬레이브 인스턴스(S)에도 데이터가 복제되어 저장된다. 제2 프로세싱부(210b)에는 설비매핑 수행유닛(213a) 및 재료매핑 수행유닛(213b)이 배포되어 있기 때문에, 제2 프로세싱부(210b)는 설비매핑 수행유닛(213a)을 실행시켜 제2 메모리부(220b)의 슬레이브 인스턴스(S) 또는 제1 메모리부(220a)의 슬레이브 인스턴스(S)로부터 독출된 표준화 데이터에 설비 식별자를 매핑하고, 재료매핑 수행유닛(213b)을 실행시켜 표준화 데이터 또는 설비 식별자가 매핑된 제1 매핑 데이터에 재료 식별자를 매핑시킨다.As shown in FIG. 6, since the fetch execution unit 211 is distributed in the first processing unit 210a, the first processing unit 210a executes the fetch execution unit 211 to perform the fetch execution unit 211. ) Connects to the queue storage unit 121 to fetch standardized data, and stores the fetch data in the master instance M of the first memory unit 220a. At this time, data is also copied and stored in the slave instance S of the second memory unit 220b. Since the equipment mapping execution unit 213a and the material mapping execution unit 213b are distributed to the second processing unit 210b, the second processing unit 210b executes the equipment mapping execution unit 213a to perform a second memory. The equipment identifier is mapped to the standardized data read from the slave instance S of the unit 220b or the slave instance S of the first memory unit 220a, and the material mapping execution unit 213b is executed to perform standardized data or equipment. The material identifier is mapped to the first mapping data to which the identifier is mapped.

제3 프로세싱부(210c)에는 데이터 보정 수행유닛(215) 및 데이터 정렬 수행유닛(216)이 배포되어 있기 때문에, 제3 프로세싱부(210c)는 데이터 보정 수행유닛(215)을 실행시켜 매핑 데이터 중 누락된 데이터를 보정하고, 데이터 정렬 수행유닛(216)을 수행하여 매핑 데이터 또는 보정된 매핑 데이터를 재료 단위로 정렬하여 제2 메모리부(220b)의 마스터 인스턴스(M)에 저장한다. 이때, 제1 메모리부(220a)의 슬레이브 인스턴스(S)에도 데이터가 저장된다. Since the data correction unit 215 and the data alignment unit 216 are distributed in the third processing unit 210c, the third processing unit 210c executes the data correction unit 215 The missing data is corrected, and the data alignment performing unit 216 is performed to align the mapping data or the corrected mapping data in units of material and store them in the master instance M of the second memory unit 220b. At this time, data is also stored in the slave instance S of the first memory unit 220a.

상술한 실시예에 있어서는, 복수개의 메모리부(220)가 이중화 되어 구성됨으로써 제1 메모리부(220a)에 포함된 마스터 인스턴스(M)과 제2 메모리부(220b)에 포함된 슬레이브 인스턴스(S)가 한 쌍으로 동작하고, 제2 메모리부(220b)에 포함된 마스터 인스턴스(M)와 제1 메모리부(220a)에 포함된 슬레이브 인스턴스(S)가 한 쌍으로 동작하는 것으로 설명하였다.In the above-described embodiment, the plurality of memory units 220 are configured to be duplicated, so that the master instance M included in the first memory unit 220a and the slave instance S included in the second memory unit 220b Is operated as a pair, and the master instance M included in the second memory unit 220b and the slave instance S included in the first memory unit 220a operate as a pair.

하지만, 이러한 실시예에 따르는 경우, 마스터 인스턴스(M) 및 슬레이브 인스턴스(S)가 싱글 쓰레드로 구현되기 때문에, 제1 메모리부(220a)의 마스터 인스턴스(M)가 다운되는 경우 제1 메모리부(220)의 마스터 인스턴스(M)가 정상화될 때까지의 다운타임 동안, 제2 메모리부(220b)의 슬레이브 인스턴스(S)가 쓰기동작과 읽기동작을 모두 서비스 할 수 는 없다.However, according to this embodiment, since the master instance (M) and the slave instance (S) are implemented as a single thread, when the master instance (M) of the first memory unit 220a is down, the first memory unit ( During the downtime until the master instance M of 220) is normalized, the slave instance S of the second memory unit 220b cannot service both the write operation and the read operation.

따라서, 변형된 실시예에 있어서, 메모리부(220)는 도 7에 도시된 바와 같이, 3중화 구조로 구현될 수 있다. 구체적으로, 변형된 실시예에 따른 메모리부(220) 각각은 마스터 인스턴스(M), 제1 슬레이브 인스턴스(S1), 및 제2 슬레이브 인스턴스(S2)를 포함한다.Accordingly, in a modified embodiment, the memory unit 220 may be implemented in a triplex structure, as shown in FIG. 7. Specifically, each of the memory units 220 according to the modified embodiment includes a master instance M, a first slave instance S1, and a second slave instance S2.

제1 메모리부(220a)에 포함된 마스터 인스턴스(M)은 제2 및 제3 메모리부(220b, 220c)의 제1 슬레이브 인스턴스(S1)들과 한 쌍으로 동작한다. 이에 따라, 제1 메모리부(220a)에 포함된 마스터 인스턴스(M)에 데이터가 기입되면 제2 및 제3 메모리부(220b, 220c)의 제1 슬레이브 인스턴스(S1)들에도 데이터가 복제되어 저장된다.The master instance M included in the first memory unit 220a operates as a pair with the first slave instances S1 of the second and third memory units 220b and 220c. Accordingly, if data is written to the master instance M included in the first memory unit 220a, the data is also copied and stored in the first slave instances S1 of the second and third memory units 220b and 220c. do.

또한, 제2 메모리부(220b)에 포함된 마스터 인스턴스(M)는 제1 메모리부(220a)에 포함된 제1 슬레이브 인스턴스(S1) 및 제3 메모리부(220c)에 포함된 제2 슬레이브 인스턴스(S2)들과 한 쌍으로 동작한다. 이에 따라, 제2 메모리부(220b)에 포함된 마스터 인스턴스(M)에 데이터가 기입되면 제1 메모리부(220a)에 포함된 제1 슬레이브 인스턴스(S1) 및 제3 메모리부(220c)에 포함된 제2 슬레이브 인스턴스(S2)들에도 데이터가 저장된다.In addition, the master instance M included in the second memory unit 220b is a first slave instance S1 included in the first memory unit 220a and a second slave instance included in the third memory unit 220c. It works in pairs with (S2). Accordingly, when data is written to the master instance M included in the second memory unit 220b, it is included in the first slave instance S1 and the third memory unit 220c included in the first memory unit 220a. Data is also stored in the second slave instances S2.

또한, 제3 메모리부(220c)에 포함된 마스터 인스턴스(M)는 제1 메모리부(220a) 및 제2 메모리부(220b)에 포함된 제2 슬레이브 인스턴스(S1)들과 한 쌍으로 동작한다. 이에 따라, 제3 메모리부(220c)에 포함된 마스터 인스턴스(M)에 데이터가 기입되면 제1 메모리부(220a) 및 제2 메모리부(220b)에 포함된 제2 슬레이브 인스턴스(S1)들에도 데이터가 복제되어 저장된다.Also, the master instance M included in the third memory unit 220c operates as a pair with the second slave instances S1 included in the first memory unit 220a and the second memory unit 220b. . Accordingly, when data is written to the master instance M included in the third memory unit 220c, the second slave instances S1 included in the first memory unit 220a and the second memory unit 220b are also The data is copied and stored.

다시 도 5를 참조하면, 수행유닛 배포부(230)는 복수개의 수행유닛들(211~218)을 복수개의 프로세싱부(210a~210c)에 배포한다. 또한, 수행유닛 배포부(230)는 프로세싱부(210a~210c)에 배포된 수행유닛들(211~218)의 실행으로 인한 프로세싱부(210a~210c)의 부하량에 따라 복수개의 수행유닛들(211~218)을 프로세싱부(210a~210c)에 재배포할 수 있다.Referring back to FIG. 5, the execution unit distribution unit 230 distributes a plurality of execution units 211 to 218 to a plurality of processing units 210a to 210c. In addition, the execution unit distribution unit 230 may perform a plurality of execution units 211 according to the load of the processing units 210a to 210c due to execution of the execution units 211 to 218 distributed to the processing units 210a to 210c. ~218) may be redistributed in the processing units 210a to 210c.

구체적으로, 수행유닛 배포부(230)는 수행유닛 저장부(232), 배포순서 결정부(234), 및 배포 수행부(236)를 포함한다.Specifically, the performing unit distribution unit 230 includes a performing unit storage unit 232, a distribution order determining unit 234, and a distribution performing unit 236.

먼저, 수행유닛 저장부(232)에는 표준화 데이터의 매핑 및 정렬을 수행하기 위한 복수개의 수행유닛(211~218)이 저장된다.First, the execution unit storage unit 232 stores a plurality of execution units 211 to 218 for performing mapping and alignment of standardized data.

배포순서 결정부(234)는 배포 수행부(236)에 의해 복수개의 수행유닛(211~218)들이 각 프로세싱부(210a~210c)에 배포된 이후, 프로세싱부(210a~210c)의 자원 사용 정보를 판단하여, 복수개의 프로세싱부(210a~210c)의 부하량이 조절될 수 있도록 복수개의 수행유닛(211~218)의 재배포를 위한 배포순서를 결정한다. 일 실시예에 있어서, 배포순서 결정부(234)는 복수개의 프로세싱부(210a~210c)의 부하량이 균등해지도록 복수개의 수행유닛(211~218)의 재배포를 위한 배포순서를 결정할 수 있다. 여기서, 배포순서 결정이란 각 수행유닛(211~218)이 배포될 프로세싱부(210a~210c)를 결정하는 것을 의미한다.Distribution order determination unit 234, after the plurality of execution units (211 to 218) are distributed to each processing unit (210a to 210c) by the distribution performing unit 236, the resource usage information of the processing units (210a to 210c) Is determined, a distribution order for redistribution of the plurality of execution units 211 to 218 is determined so that the load amount of the plurality of processing units 210a to 210c can be adjusted. In an embodiment, the distribution order determination unit 234 may determine a distribution order for redistribution of the plurality of execution units 211 to 218 so that the loads of the plurality of processing units 210a to 210c are equalized. Here, the determination of the distribution order means determining the processing units 210a to 210c to which the respective execution units 211 to 218 are to be distributed.

다른 실시예에 있어서, 배포순서 결정부(234)는 최초 배포된 수행유닛의 실행에 따른 시스템 자원의 평균값 및 시스템 자원의 이용 패턴 중 적어도 하나를 이용하여 복수개의 수행유닛(211~218)의 배포순서를 결정할 수 있다. 이러한 실시예에 따르는 경우, 시스템 자원은, 각 프로세싱부(210a~210c)의 CPU 사용율, 메모리 사용량, 네트워크 통신량, 및 디스크 입출력 처리량 중 적어도 하나를 포함할 수 있다.In another embodiment, the distribution order determination unit 234 distributes a plurality of execution units 211 to 218 using at least one of an average value of system resources and a usage pattern of system resources according to execution of the first deployed execution unit. You can decide the order. According to this embodiment, the system resource may include at least one of a CPU usage rate, a memory usage, a network communication amount, and a disk input/output throughput of each of the processing units 210a to 210c.

배포 수행부(236)는 배포순서 결정부(234)에 결정된 배포순서에 따라 복수개의 수행유닛(211~218)들을 복수개의 프로세싱부(210a~210c)에 분산 배포한다.The distribution performing unit 236 distributes and distributes the plurality of execution units 211 to 218 to the plurality of processing units 210a to 210c according to the distribution order determined by the distribution order determination unit 234.

구체적으로, 배포 수행부(236)는 수행유닛 저장부(232)에 저장되어 있는 복수개의 수행유닛(211~218)들을 임의로 프로세싱부(210a~210c)로 배포한다. 이후, 미리 정해진 휴지기가 되면 배포 수행부(236)는 각 프로세싱부(210a~210c)에 배포된 수행유닛(211~218)들을 회수하여 수행유닛 저장부(232)에 저장하고, 휴지기가 종료되면 수행유닛 저장부(232)에 저장되어 있는 복수개의 수행유닛(211~218)들을 배포순서 결정부(234)에 의해 결정된 배포순서에 따라 해당 프로세싱부(210a~210c)에 배포한다.Specifically, the distribution execution unit 236 randomly distributes the plurality of execution units 211 to 218 stored in the execution unit storage unit 232 to the processing units 210a to 210c. Thereafter, when a predetermined pause is reached, the distribution performing unit 236 retrieves the execution units 211 to 218 distributed to each of the processing units 210a to 210c and stores them in the execution unit storage unit 232, and when the pause is completed, The plurality of execution units 211 to 218 stored in the execution unit storage unit 232 are distributed to the corresponding processing units 210a to 210c according to the distribution order determined by the distribution order determination unit 234.

다시 도 1을 참조하면, 고속 빅데이터 분석 시스템(300)은 분산병렬처리시스템(200)에 의해 정렬된 정렬 데이터를 빅데이터 저장 공간에 저장한다. 특히, 본 발명에 따른 고속 빅데이터 분석 시스템(300)은 빅 데이터 저장 공간 내에서 정렬 데이터를 2개의 빅데이터 저장부에 구분하여 저장함으로써 빅데이터 분석 서비스가 실시간으로 제공될 수 있도록 한다.Referring back to FIG. 1, the high-speed big data analysis system 300 stores the alignment data arranged by the distributed parallel processing system 200 in a big data storage space. In particular, the high-speed big data analysis system 300 according to the present invention separates and stores the sorted data in two big data storage units in the big data storage space so that a big data analysis service can be provided in real time.

이하, 도 8을 참조하여 본 발명에 따른 고속 빅데이터 분석 시스템(300)을 구체적으로 설명한다.Hereinafter, a high-speed big data analysis system 300 according to the present invention will be described in detail with reference to FIG. 8.

도 8은 본 발명의 일 실시예에 따른 고속 빅데이터 분석 시스템의 구성을 보여주는 블록도이다. 도 8에 도시된 바와 같이, 본 발명의 일 실시예에 따른 고속 빅데이터 분석 시스템(300)은 데이터 처리부(310), 빅데이터 저장부(320), 쿼리 처리부(330), 및 분석장치(340)를 포함한다.8 is a block diagram showing the configuration of a high-speed big data analysis system according to an embodiment of the present invention. As shown in FIG. 8, the high-speed big data analysis system 300 according to an embodiment of the present invention includes a data processing unit 310, a big data storage unit 320, a query processing unit 330, and an analysis device 340. ).

데이터 처리부(310)는 정렬 데이터와 이상감지 결과를 분산 병렬 처리하는 것으로서, 완료이벤트 수신유닛(311), 정렬데이터 페치유닛(312), 메모리 큐(313), 데이터 저장유닛(314a), 파일생성유닛(314b), 이상감지 데이터 수신유닛(315), 및 메타데이터 생성유닛(316) 중 적어도 하나의 유닛을 포함하고, 빅데이터 저장부(320)는 데이터 처리부(310)에 의해 정렬 데이터가 저장되는 공간으로써 제1 빅데이터 저장부(322), 제2 빅데이터 저장부(324), 및 모델 저장부(326)를 포함한다.The data processing unit 310 is a distributed parallel processing of the alignment data and the abnormality detection result, and a completion event receiving unit 311, an alignment data fetch unit 312, a memory queue 313, a data storage unit 314a, and a file generation At least one of the unit 314b, the abnormality detection data receiving unit 315, and the metadata generating unit 316 is included, and the big data storage unit 320 stores alignment data by the data processing unit 310 As a space, a first big data storage unit 322, a second big data storage unit 324, and a model storage unit 326 are included.

완료이벤트 수신유닛(311)은 분산병렬처리시스템(200)의 메모리부(220)를 모니터링하여 완료 이벤트가 새롭게 저장되면 해당 완료 이벤트를 정렬데이터 페치유닛(312)으로 전달한다.The completion event receiving unit 311 monitors the memory unit 220 of the distributed parallel processing system 200 and transmits the completion event to the alignment data fetch unit 312 when a completion event is newly stored.

정렬데이터 페치유닛(312)은 완료이벤트 수신유닛(311)으로부터 완료 이벤트가 전달되면, 메모리부(220)에서 완료 이벤트에 해당하는 정렬 데이터를 조회하여 메모리 큐(313)에 저장한다. 일 실시예에 있어서, 정렬데이터 페치유닛(312)은 완료 이벤트에 포함된 키 정보를 이용해서 해당 완료 이벤트에 대응되는 데이터가 메모리부(220)의 어느 파티션 및 디렉토리에 저장되어 있는지 확인함으로써, 메모리부(220)에 저장된 데이터를 조회하여 메모리 큐(313)에 저장할 수 있다.When the completion event is transmitted from the completion event receiving unit 311, the alignment data fetch unit 312 inquires the alignment data corresponding to the completion event in the memory unit 220 and stores it in the memory queue 313. In one embodiment, the alignment data fetch unit 312 uses the key information included in the completion event to check in which partition and directory of the memory unit 220 data corresponding to the completion event is stored. Data stored in the unit 220 may be inquired and stored in the memory queue 313.

메모리 큐(313)는 정렬데이터 페치유닛(312)에 의해 독출된 정렬 데이터를 빅데이터 저장부(320)에 저장하기 전에 메모리 상에 임시로 보관한다.The memory queue 313 temporarily stores the alignment data read by the alignment data fetch unit 312 in the memory before storing it in the big data storage unit 320.

데이터 저장유닛(314a)은 메모리 큐(313)에 저장된 정렬 데이터를 제1 빅데이터 저장부(322)의 인스턴스(Instance) 내에 바이너리(Binary) 형태로 저장한다. 일 실시예에 있어서, 데이터 저장유닛(314a)은 메모리 큐(313)에 저장된 정렬 데이터를 변경하거나 수정하여 제1 빅데이터 저장부(322)에 저장할 수 있다. 또한, 데이터 저장유닛(314a)은 제1 빅데이터 저장부(322)에 저장된 정렬 데이터를 변경 또는 수정할 수도 있다.The data storage unit 314a stores the alignment data stored in the memory queue 313 in a binary form in an instance of the first big data storage unit 322. In an embodiment, the data storage unit 314a may change or modify the alignment data stored in the memory queue 313 and store it in the first big data storage unit 322. In addition, the data storage unit 314a may change or modify the alignment data stored in the first big data storage unit 322.

파일생성유닛(314b)은 제1 빅데이터 저장부(322)에 저장된 정렬 데이터를 물리적인 형태의 파일로 생성하여 제2 빅데이터 저장부(324)의 디스크(Disk) 내에 저장한다. 일 실시예에 있어서, 파일생성유닛(314b)은 미리 정해진 이벤트가 발생되면 제1 빅데이터 저장부(322)에 저장된 정렬 데이터를 파일로 생성하여 제2 빅데이터 저장부(324)에 저장할 수 있다.The file generation unit 314b generates the alignment data stored in the first big data storage unit 322 as a physical file and stores it in a disk of the second big data storage unit 324. In one embodiment, when a predetermined event occurs, the file generation unit 314b may generate the alignment data stored in the first big data storage unit 322 as a file and store it in the second big data storage unit 324. .

예컨대, 파일생성유닛(314b)은 제1 빅데이터 저장부(322)에 저장된 정렬 데이터들 중 미리 정해진 기간이 경과한 정렬 데이터를 파일로 생성하여 제2 빅데이터 저장부(324)에 저장할 수 있다. 다른 예로, 파일생성유닛(314b)은 제1 빅데이터 저장부(322)에 저장된 정렬 데이터들 중 수정 또는 변경이 완료되어 콜드 데이터(Cold Data)가 된 정렬 데이터를 파일로 생성하여 제2 빅데이터 저장부(324)에 저장할 수 있다.For example, the file generation unit 314b may generate the alignment data that has passed a predetermined period among the alignment data stored in the first big data storage unit 322 as a file and store it in the second big data storage unit 324. . As another example, the file generation unit 314b generates, as a file, the alignment data that has been modified or changed and becomes cold data among the alignment data stored in the first big data storage unit 322 as a file. It can be stored in the storage unit 324.

한편, 파일생성유닛(314b)은 생성한 파일을 제2 빅데이터 저장부(324)에 저장할 때, 파일의 크기를 압축하거나 파일의 포맷을 변경하여 저장할 수도 있다.Meanwhile, when the file generation unit 314b stores the generated file in the second big data storage unit 324, it may compress the size of the file or change the format of the file and store it.

일 실시예에 있어서, 파일생성유닛(314b)은 복수개의 파일생성유닛으로 구현될 수 있다. 이를 통해 복수개의 파일 생성유닛(314a~314n)이 파일생성 작업을 병렬적으로 처리할 수 있어 파일생성작업의 속도를 향상시킬 수 있다. 이러한 실시예에 따르는 경우 복수개의 파일생성유닛(314b)들은 서로 클러스터링되어 있을 수 있다. In one embodiment, the file generating unit 314b may be implemented as a plurality of file generating units. Through this, the plurality of file generation units 314a to 314n can process the file generation operation in parallel, thereby improving the speed of the file generation operation. According to this embodiment, the plurality of file generation units 314b may be clustered with each other.

상술한 실시예에 있어서, 파일생성유닛(314b)은 정렬 데이터를 물리적인 형태의 파일로 저장시, 파일을 복수개의 블록 형태로 구분하여 저장할 수 있다. 이에 따라, 파일생성유닛(314b)은 각 블록들이 저장된 위치를 특정하기 위한 메타데이터를 생성하고, 생성된 메타 데이터를 이용하여 제2 빅데이터 저장소(324)에 저장된 파일들을 관리할 수 있다. 이때, 메타데이터 생성을 위해 파일생성유닛(314b)은 각 블록 별로 인덱스를 생성하여 할당하고, 메타 데이터 내에서 인덱스를 이용하여 각 블록들을 특정할 수 있다.In the above-described embodiment, when storing the alignment data as a physical file, the file generation unit 314b may divide and store the file in a plurality of block types. Accordingly, the file generation unit 314b may generate metadata for specifying the location where each block is stored, and manage files stored in the second big data storage 324 by using the generated metadata. In this case, to generate metadata, the file generation unit 314b may create and allocate an index for each block, and may specify each block using the index within the metadata.

상술한 실시예에 있어서, 데이터 저장유닛(314a)이 메모리 큐(313)에 저장된 모든 정렬 데이터를 제1 빅데이터 저장부(322)에 저장하고, 파일생성유닛(314b)은 제1 빅데이터 저장부(322)에 저장된 정렬 데이터를 파일형태로 제2 빅데이터 저장부(324)에 기록하는 것으로 설명하였다.In the above-described embodiment, the data storage unit 314a stores all sorting data stored in the memory queue 313 in the first big data storage unit 322, and the file generation unit 314b stores the first big data. It has been described that the alignment data stored in the unit 322 is recorded in the second big data storage unit 324 in the form of a file.

하지만, 변형된 실시예에 있어서 데이터 저장유닛(314a)은 메모리 큐(313)에 저장된 정렬 데이터들 중 테이블에 기록시 컬럼(Column)이나 로우(Row)의 개수가 기준치 미만인 정렬 데이터 또는 크기가 기준치 미만인 정렬 데이터를 선별하여 제1 빅데이터 저장부(322)에 저장하고, 컬럼이나 로우의 개수가 기준치 이상인 정렬 데이터 또는 크기가 기준치 이상인 정렬 데이터는 파일생성유닛(314b)이 파일 형태로 직접 생성하여 제2 빅데이터 저장부(324)에 저장할 수도 있다.However, in a modified embodiment, the data storage unit 314a has a reference value in which the number of columns or rows is less than the reference value when writing to the table among the alignment data stored in the memory queue 313. Sorting data that is less than or equal to is selected and stored in the first big data storage unit 322, and sorted data with a number of columns or rows greater than or equal to a standard value or sort data whose size is greater than or equal to a standard value is directly generated by the file generation unit 314b in a file It may be stored in the second big data storage unit 324.

상술한 실시예에서 데이터 저장유닛(314a)이 메모리 큐(313)에 저장된 정렬 데이터들 중 컬럼이나 로우의 개수가 기준치 미만이거나 크기가 기준치 미만인 정렬 데이터만 제1 빅데이터 저장부(322)에 저장하는 이유는, 컬럼이나 로우의 개수가 기준치 이상이거나 크기가 기준치 이상인 정렬 데이터를 제1 빅데이터 저장부(322)에 테이블 형태로 기록하게 되면, 로딩에 많은 시간이 소요될 수 있어 실시간 빅데이터 서비스 제공이 어려울 수 있기 때문이다.In the above-described embodiment, among the sorting data stored in the memory queue 313 by the data storage unit 314a, only sorted data in which the number of columns or rows is less than the reference value or the size is less than the reference value are stored in the first big data storage unit 322 The reason for this is that if the number of columns or rows is greater than or equal to the reference value or if the sorted data whose size is greater than or equal to the reference value is recorded in the form of a table in the first big data storage unit 322, it may take a lot of time to load, thus providing real-time big data service Because this can be difficult.

이상감지 데이터 수신유닛(315)은 분산병렬처리시스템(200)의 메모리부(220)를 모니터링하여 새로운 이상감지 결과가 저장되면 이를 메모리 큐(313)에 저장한다.The abnormality detection data receiving unit 315 monitors the memory unit 220 of the distributed parallel processing system 200 and stores a new abnormality detection result in the memory queue 313 when a new abnormality detection result is stored.

메타데이터 생성유닛(316)은 제1 빅데이터 저장소(322)에 포함된 테이블의 식별자, 테이블위 위치, 해당 테이블 내에서 각 정렬 데이터가 저장된 컬럼 및 로우에 대한 정보를 각 정렬 데이터 별로 매핑한 메타 데이터를 생성하여 저장한다.The metadata generation unit 316 maps information on the identifier of the table included in the first big data storage 322, the position on the table, and columns and rows in which each sorted data is stored in the corresponding table for each sorted data. Create and save data.

이러한 경우, 파일생성유닛(314b)은 메타데이터 생성유닛(316)에 의해 생성된 메타 데이터를 기준으로 각 테이블에 기록된 데이터들 중 파일로 생성될 데이터를 결정할 수 있다.In this case, the file generation unit 314b may determine data to be generated as a file among data recorded in each table based on the metadata generated by the metadata generation unit 316.

또한, 메타데이터 생성유닛(316)은 파일생성유닛(314b)에 의해 생성된 파일의 위치, 파일명, 파일이 저장되는 블록 ID, 및 서버의 저장위치 등을 추가로 메타데이터에 기록한다. 예컨대, 메타데이터 생성유닛(316)은 파일생성유닛(314b)에 파일이 생성되면 파일의 위치와 파일명을 메타데이터에 기록하고, 해당 파일이 블록 사이즈보다 커서 5개의 블록으로 나누어 각기 다른 3대의 서버에 저장되는 경우, 15개의 블록 ID와 각 서버의 저장위치를 메타데이터에 추가로 저장한다.In addition, the metadata generation unit 316 additionally records the location of the file generated by the file generation unit 314b, the file name, the block ID in which the file is stored, and the storage location of the server in the metadata. For example, when a file is created in the file generation unit 314b, the metadata generation unit 316 records the location and file name of the file in the metadata, and the file is larger than the block size and divides into 5 blocks. When stored in, 15 block IDs and storage locations of each server are additionally stored in metadata.

제1 빅데이터 저장부(322)에는 메모리 큐(313)에 저장된 정렬 데이터들 중 적어도 일부가 데이터 생성유닛(314a)에 의해 인스턴스 내에 바이너리 형태로 저장된다. 즉, 데이터 생성유닛(314a)을 통해 메모리 큐(313)에 저장된 정렬 데이터들 중 적어도 일부가 제1 빅이터 저장부(322)에 포함된 인스턴스 내에 바이너리 형태로 기록된다.In the first big data storage unit 322, at least some of the alignment data stored in the memory queue 313 are stored in the instance in a binary form by the data generation unit 314a. That is, at least some of the alignment data stored in the memory queue 313 through the data generation unit 314a is recorded in a binary form in the instance included in the first big data storage unit 322.

이와 같이, 본 발명에 따른 고속 빅데이터 분석 시스템(300)이 정렬 데이터를 제1 빅데이터 저장부(322)에 바이너리 형태로 저장하는 이유는 정렬 데이터를 파일로 저장하는 경우 해당 정렬 데이터의 실시간 열람이 불가능하기 때문이다. 구체적으로, 정렬 데이터가 파일형태로 저장되는 경우 정렬 데이터는 시간단위 또는 일단위로 저장되는데, 파일저장 작업이 종료(Close)될 때까지는 해당 파일에 접근할 수 없어 파일이 저장되는 시간 동안에는 정렬 데이터의 실시간 확인이 불가능하다.As described above, the reason that the high-speed big data analysis system 300 according to the present invention stores the alignment data in the first big data storage unit 322 in binary form is that when the alignment data is stored as a file, the alignment data is viewed in real time. Because this is impossible. Specifically, when the sort data is saved in the form of a file, the sort data is saved in units of time or day, but the file cannot be accessed until the file saving operation is closed. Real-time confirmation is impossible.

더욱이, 정렬 데이터를 파일로 저장할 때 파일의 크기가 커 블록단위로 분할하여 파일을 저장하는 경우 파일저장위치를 별도의 메타데이터로 관리하여야 하는데, 이를 위해서는 블록 별로 인덱스를 할당해야할 뿐만 아니라, 데이터 열람을 위해서는 별도의 메타 데이터 및 인덱스의 로딩이 요구되고 메타 데이터 및 인덱스 로딩에도 많은 시간이 소요되므로 데이터의 실시간 확인이 불가능해진다.Moreover, when storing the sorted data as a file, when the file is divided into blocks and saved as the size of the file is large, the file storage location must be managed as separate metadata. To do this, indexes must be allocated for each block as well as data browsing. For this, it is necessary to load separate meta data and index, and because it takes a lot of time to load meta data and index, real-time confirmation of data becomes impossible.

이에 따라, 본 발명에 따른 고속 빅데이터 분석 시스템(300)은 정렬 데이터를 1차적으로 제1 빅데이터 저장부(322)의 인스턴스 내에 바이너리 형태로 저장함으로써 정렬 데이터의 실시간 확인이 가능하도록 할 수 있다.Accordingly, the high-speed big data analysis system 300 according to the present invention may enable real-time confirmation of the alignment data by primarily storing the alignment data in an instance of the first big data storage unit 322 in a binary format. .

제2 빅데이터 저장부(324)에는 제1 빅데이터 저장부(322)에 저장된 정렬 데이터들 중 파일생성유닛(314b)에 의해 선별된 정렬 데이터들이 물리적인 파일형태로 저장된다. The alignment data selected by the file generation unit 314b among the alignment data stored in the first big data storage unit 322 are stored in the second big data storage unit 324 in a physical file format.

상술한 실시예에 있어서, 제1 및 제2 빅데이터 저장부(322, 324)를 포함하는 빅데이터 저장부(320)는 분산파일시스템(Distributed File System) 기반으로 구현될 수 있다. In the above-described embodiment, the big data storage unit 320 including the first and second big data storage units 322 and 324 may be implemented based on a distributed file system.

한편, 제1 및 제2 빅데이터 저장부(322, 324)는 각각 도 9에 도시된 바와 같이 마스터 노드(320a) 및 데이터 노드(320b)로 구성될 수 있다. 마스터 노드(320a)는 정렬 데이터가 기록된 테이블 또는 정렬 데이터들의 파일을 데이터 노드들(320b)에 저장하고, 데이터 노드(320b)에 저장된 테이블 또는 파일의 조회를 위한 작업(Job)을 생성 및 관리한다.Meanwhile, the first and second big data storage units 322 and 324 may be configured of a master node 320a and a data node 320b, respectively, as shown in FIG. 9. The master node 320a stores a table in which the sorting data is recorded or a file of sorting data in the data nodes 320b, and creates and manages a job for querying the table or file stored in the data node 320b. do.

여기서, 작업(Job)이란 데이터 노드(320b)에 저장된 테이블 또는 파일을 조회하기 위해 쿼리 처리 장치(330)로부터 수신되는 쿼리를 처리하기 위한 단위를 의미한다. Here, a job refers to a unit for processing a query received from the query processing device 330 to inquire a table or file stored in the data node 320b.

특히, 마스터 모드(320a)는 데이터 노드(320b)에 저장된 데이터의 조회에 대한 작업(Job) 실행시 각 작업(Job)에 대한 분배 및 특정 파일의 데이터를 로딩할 때, 메타데이터 생성유닛(316)에 의해 생성된 메타데이터를 데이터의 위치 정보로 활용하게 된다.In particular, the master mode (320a), when executing a job (Job) for querying of data stored in the data node (320b), distribution for each job (Job) and when loading data of a specific file, metadata generation unit (316) The metadata generated by) is used as the location information of the data.

데이터 노드(320b)에는 정렬 데이터들의 테이블 또는 파일이 저장된다. 데이터 노드(320b)는 복수개로 구현될 수 있다. 이러한 경우, 각 데이터 노드(320b)에 포함된 저장부에 테이블 또는 파일이 모두 저장된다. A table or file of sorting data is stored in the data node 320b. A plurality of data nodes 320b may be implemented. In this case, all of the tables or files are stored in a storage unit included in each data node 320b.

다시 도 8을 참조하면, 모델 저장부(326)에는 빅데이터 분석을 위한 적어도 하나의 빅데이터 분석모델이 저장된다. 일 실시예에 있어서 빅데이터 분석모델은 실시간성 빅데이터 분석모델과 비실시간성 빅데이터 분석모델을 포함할 수 있다. 예컨대, 실시간성 빅데이터 분석모델은 재료나 제품에 대한 품질을 판정하기 위해 필요한 품질판정모델, 수집 데이터가 발생된 설비의 모니터링을 위한 설비모니터링 분석모델, 및 수집 데이터가 발생된 공정의 이상발생여부를 감지하기 위한 이상발생 감지모델 중 적어도 하나를 포함할 수 있고, 비실시간성 빅데이터 분석모델은 인공지능 학습모델 및 트렌드 분석 중 적어도 하나를 포함할 수 있다.Referring back to FIG. 8, at least one big data analysis model for big data analysis is stored in the model storage unit 326. In an embodiment, the big data analysis model may include a real-time big data analysis model and a non-real-time big data analysis model. For example, the real-time big data analysis model is a quality determination model necessary to determine the quality of a material or product, a facility monitoring analysis model for monitoring the facility where the collected data is generated, and whether or not an abnormality occurs in the process where the collected data is generated. It may include at least one of the abnormal occurrence detection model for detecting, and the non-real-time big data analysis model may include at least one of an artificial intelligence learning model and a trend analysis.

일 실시예에 있어서, 분석모델은 통계식으로 구성되거나 AI 모델로 구성될 수 있다.In one embodiment, the analysis model may be composed of a statistical formula or may be composed of an AI model.

쿼리 처리부(330)는 빅데이터 저장부(320)에 저장된 데이터를 조회하여 데이터를 리턴한다, 이를 위해, 쿼리 처리부(330)는 쿼리수신유닛(332), 쿼리실행유닛(336), 및 쿼리결과 전송유닛(338) 중 적어도 하나의 유닛을 포함한다. 쿼리 처리부(330)는 쿼리 스케줄링유닛(334)을 더 포함할 수 있다.The query processing unit 330 retrieves the data stored in the big data storage unit 320 and returns the data. To this end, the query processing unit 330 includes a query receiving unit 332, a query execution unit 336, and a query result. And at least one of the transmission units 338. The query processing unit 330 may further include a query scheduling unit 334.

구체적으로, 쿼리수신유닛(332)은 사용자로부터 쿼리를 수신하고 수신된 쿼리구문을 해석한다.Specifically, the query receiving unit 332 receives a query from a user and interprets the received query syntax.

쿼리실행유닛(336)은 쿼리 수신유닛(322)을 통해 수신된 쿼리를 빅 데이터 저장부(320)로 전달함으로써 쿼리가 실행되도록 하고, 빅 데이터 저장부(320)로부터 쿼리 실행 결과를 획득한다. 일 실시예에 있어서, 쿼리실행유닛(336) 쿼리실행시 메타데이터 생성유닛(316)에 의해 생성된 메타데이터를 이용하여 해당 쿼리가 빅 데이터 저장부(320) 중 제1 빅데이터 저장부(322)로 전달되어야 할 쿼리인지 제2 빅데이터 저장부(324)로 전달되어야 할 쿼리인지 여부를 결정할 수 있다.The query execution unit 336 transmits the query received through the query reception unit 322 to the big data storage unit 320 to execute the query, and obtains a query execution result from the big data storage unit 320. In one embodiment, the query execution unit 336 uses the metadata generated by the metadata generation unit 316 when executing the query, and the corresponding query is the first big data storage unit 322 of the big data storage unit 320. ) Or a query to be transmitted to the second big data storage unit 324 may be determined.

쿼리결과 전송유닛(338)은 쿼리수행 결과 빅 데이터 저장부(320)로부터 획득되는 쿼리 실행결과를 해당 쿼리를 요청한 사용자에게 전달한다.The query result transmission unit 338 transmits the query execution result obtained from the query execution result big data storage unit 320 to the user who requested the query.

한편, 쿼리 스케줄링유닛(334)은 쿼리수신유닛(332)을 통해 수신된 쿼리가 복수개의 하부 쿼리들로 구성되어 있는 경우, 수신된 쿼리를 각 하부 쿼리로 분류하여 쿼리 실행유닛(336)으로 전달한다.On the other hand, when the query received through the query receiving unit 332 is composed of a plurality of subqueries, the query scheduling unit 334 classifies the received query into each subquery and delivers it to the query execution unit 336 do.

일 실시예에 있어서, 쿼리수신유닛(332)은 API 서비스 제공 시스템(400)을 통해 제공되는 API(Application Programming Interface)를 통해 쿼리를 수신할 수 있다. 구체적으로, 리퀘스터로부터 고속 빅데이터 분석 시스템(300)에 접속할 수 있는 API의 실행요청 및 특정 이벤트가 수신되면, API 서비스 제공 시스템(400)은 해당 API를 실행시킴으로써 해당 이벤트에 상응하는 쿼리를 생성하고, 생성된 쿼리를 쿼리수신유닛(332)으로 전송한다. 또한, API 서비스 제공 시스템(400)은 API를 통해 해당 쿼리에 대응되는 실행결과를 획득하여 리퀘스터에게 제공할 수 있다.In an embodiment, the query receiving unit 332 may receive a query through an application programming interface (API) provided through the API service providing system 400. Specifically, when a request for execution of an API to access the high-speed big data analysis system 300 and a specific event are received from a requester, the API service providing system 400 generates a query corresponding to the event by executing the API. Then, the generated query is transmitted to the query receiving unit 332. In addition, the API service providing system 400 may obtain an execution result corresponding to a corresponding query through an API and provide it to the requester.

분석장치(340)는 리퀘스터(Requester)로부터 모델 저장부(326)에 저장된 적어도 하나의 빅데이터 분석모델 중 어느 하나의 실행이 요청되면, 실행요청된 빅데이터 분석모델을 실행시키고, 해당 빅데이터 분석모델의 실행을 통해 획득된 빅데이터 분석결과를 리퀘스트로 리턴한다.When an execution of any one of the at least one big data analysis model stored in the model storage unit 326 is requested from the requester, the analysis device 340 executes the requested big data analysis model, and the corresponding big data Big data analysis results obtained through execution of the analysis model are returned as a request.

이를 위해, 분석장치(340)는 도 8에 도시된 바와 같이, 분석모델 호출부(342), 분석모델 실행부(344), 및 분석결과 전송부(346)를 포함한다.To this end, the analysis device 340 includes an analysis model call unit 342, an analysis model execution unit 344, and an analysis result transmission unit 346, as shown in FIG. 8.

분석모델 호출부(342)는 리퀘스트로부터 분석모델 실행요청이 수신되면, 실행 요청된 빅데이터 분석모델의 모델 식별자(Identifier: ID)을 특정하고, 특정된 빅데이터 분석모델의 모델 식별자에 해당하는 분석모델을 모델 저장부(326)로부터 로딩함으로써 해당 빅데이터 분석모델을 호출한다.When the analysis model execution request is received from the request, the analysis model call unit 342 specifies the model identifier (ID) of the big data analysis model requested to be executed, and an analysis corresponding to the model identifier of the specified big data analysis model. The big data analysis model is called by loading the model from the model storage unit 326.

분석모델 실행부(344)는 호출된 빅데이터 분석모델을 제1 빅데이터 저장부(322)에 저장된 정렬 데이터 및 제2 빅데이터 저장부(3340) 저장된 파일 중 적어도 하나를 이용하여 실행시킴으로써 빅데이터 분석결과를 획득한다.The analysis model execution unit 344 executes the called big data analysis model by using at least one of the alignment data stored in the first big data storage unit 322 and the file stored in the second big data storage unit 3340. Acquire analysis results.

일 예로 분석모델 호출부(342)를 통해 품질판정모델, 설비모니터링 분석모델, 및 이상발생 감지모델과 같은 실시간성 빅데이터 분석모델이 호출된 경우 제1 빅데이터 저장부(322)에 저장된 정렬 데이터를 이용하여 해당 빅데이터 분석모델을 실행시킴으로써 실시간으로 빅데이터 분석이 실행될 수 있도록 한다.For example, when a real-time big data analysis model such as a quality determination model, a facility monitoring analysis model, and an abnormality detection model is called through the analysis model calling unit 342, the alignment data stored in the first big data storage unit 322 The big data analysis can be executed in real time by executing the corresponding big data analysis model using.

다른 예로, 분석모델 호출부(342)를 통해 인공지능 학습모델 및 트렌드 분석과 같은 비실시간성 빅데이터 분석모델이 호출된 경우 분석모델 실행부(344)는 제2 빅데이터 저장부(324)에 저장된 파일을 이용하여 해당 빅데이터 분석모델을 실행시킴으로써 비실시간성 빅데이터 분석이 수행될 수 있도록 한다. 이때, 트렌드 분석의 경우 정확도를 향상시키기 위해 분석모델 실행부(344)는 제1 빅데이터 저장부(322)에 저장된 정렬 데이터를 추가로 이용할 수도 있다.As another example, when a non-real-time big data analysis model such as an artificial intelligence learning model and trend analysis is called through the analysis model calling unit 342, the analysis model execution unit 344 is stored in the second big data storage unit 324. By executing the corresponding big data analysis model using the saved file, non-real-time big data analysis can be performed. In this case, in the case of trend analysis, the analysis model execution unit 344 may additionally use the alignment data stored in the first big data storage unit 322 to improve accuracy.

분석결과 전송부(346)는 분석모델 실행부(344)에 의해 획득된 빅데이터 분석결과를 리퀘스트로 전송한다.The analysis result transmission unit 346 transmits the big data analysis result obtained by the analysis model execution unit 344 as a request.

일 실시예에 있어서, 리퀘스터는 API 서비스 제공 시스템(400)을 통해 제공되는 API를 이용하여 분석장치(340)에 접속할 수 있다. 구체적으로, 리퀘스터로부터 분석장치(340)에 접속할 수 있는 API의 실행요청 및 특정 분석모델의 실행요청이 요청되면, API 서비스 제공 시스템(400)은 해당 API를 실행시킴으로써 분석모델 호출부(342)가 특정 분석모델을 호출할 수 있도록 한다. 또한, API 서비스 제공 시스템(400)은 API를 통해 분석결과 전송부(346)로부터 빅데이터 분셕결과를 획득하여 리퀘스터로 제공할 수 있다.In an embodiment, the requester may access the analysis device 340 using an API provided through the API service providing system 400. Specifically, when a request for execution of an API that can access the analysis device 340 and a request for execution of a specific analysis model are requested from the requester, the API service providing system 400 executes the corresponding API so that the analysis model call unit 342 Allows you to call a specific analysis model. In addition, the API service providing system 400 may obtain the big data analysis result from the analysis result transmission unit 346 through the API and provide it as a requester.

다시 도 1을 참조하면, API 서비스 제공 시스템(400)은 리퀘스터(Requester, 500)와 스마트팩토리 플랫폼(1000)을 구성하는 각 시스템(100, 200, 300)들간의 접속을 위한 API를 실행시킨다.Referring back to FIG. 1, the API service providing system 400 executes an API for connection between the requester 500 and the respective systems 100, 200, and 300 constituting the smart factory platform 1000. .

구체적으로, API 서비스 제공 시스템(400)은 리퀘스터(500)로부터 접속하기 원하는 타겟 시스템에 대응되는 API의 식별정보와 명령어를 포함하는 이벤트가 수신되면, 해당 API를 실행함으로써 해당 이벤트에 대한 실행결과를 리퀘스터(500)로 리턴한다.Specifically, when an event including identification information and a command of an API corresponding to a target system to be accessed from the requester 500 is received, the API service providing system 400 executes the API to execute the execution result for the event. Is returned to the requester 500.

본 발명에서 API 서비스 제공 시스템(400)을 통해 리퀘스터(500)와 각 시스템(100, 200, 300)간의 접속을 위한 API를 제공하는 이유는, API를 통해 표준적인 데이터 인터페이스를 제공함으로써 각 시스템(100, 200, 300)의 인프라 및 솔루션이 변경되더라도 그에 따른 별도의 소프트웨어를 개발할 필요가 없어 소프트웨어 개발 생산성을 향상시킬 수 있기 때문이다.In the present invention, the reason for providing an API for connection between the requester 500 and each system 100, 200, 300 through the API service providing system 400 is, by providing a standard data interface through the API, each system This is because even if the infrastructure and solutions of (100, 200, 300) are changed, there is no need to develop a separate software accordingly, and software development productivity can be improved.

구체적으로, 리퀘스터(500)가 각 시스템(100, 200, 300)의 전용 인터페이스를 통해 각 시스템(100, 200, 300)에 직접 접속하는 경우 각 시스템(100, 200, 300)의 서버, 스토리지, 또는 네트워크 등과 같은 각종 인프라 자원 또는 적용 오픈소스나 라이브러리가 버전업 되면 리퀘스트(500)를 구성하는 소프트웨어의 변경이 요구될 수 밖에 없다.Specifically, when the requester 500 directly connects to each system 100, 200, 300 through a dedicated interface of each system 100, 200, 300, the server and storage of each system 100, 200, 300 , Or when various infrastructure resources such as a network or an applied open source or library are versioned, a change in software constituting the request 500 is inevitably required.

하지만, 본 발명과 같이 리퀘스터(500)가 API를 통해 각 시스템(100, 200, 300)에 접속하는 경우 각 시스템(100, 200, 300)의 인프라 및 솔루션이 변경되더라도 리퀘스터(500)에 대한 소프트웨어의 변경은 요구되지 않기 때문에 각 시스템(100, 200, 300)의 인프라 및 솔루션 변경으로 인한 영향을 최소화할 수 있게 된다.However, as in the present invention, when the requester 500 accesses each system 100, 200, 300 through an API, even if the infrastructure and solution of each system 100, 200, 300 are changed, the requester 500 Since a change in software for each system is not required, it is possible to minimize the impact caused by changes in infrastructure and solutions of each system 100, 200, 300.

또한, 데이터 저장 및 활용 유형별로 API 서비스를 제공할 수 있어 인프라 자원에 대한 효율성을 제공할 수 있고 사용자에게 보다 빠른 서비스를 제공할 수 있게 된다.In addition, API services can be provided for each data storage and utilization type, so that efficiency for infrastructure resources can be provided, and faster services can be provided to users.

또한, 각 시스템(100, 200, 300)으로부터 데이터를 획득하기 위해 리퀘스터(500)가 각 시스템(100, 200, 300)에 직접 접근하지 않고, 각 시스템(100, 200, 300)별로 제공되는 API를 통해 해당 시스템(100, 200, 300)에 접근하여 이벤트에 대한 호출서비스 및 피드백 서비스를 제공받을 수 있기 때문에, 리퀘스터(500)의 입장에서는 시스템 접근 편의성이 향상될 수 있다.In addition, in order to obtain data from each system (100, 200, 300), the requester 500 does not directly access each system (100, 200, 300), and is provided for each system (100, 200, 300). Since it is possible to access the corresponding systems 100, 200, and 300 through an API to receive a call service and a feedback service for an event, system access convenience may be improved from the viewpoint of the requester 500.

이하, 본 발명에 따른 API 서비스 제공 시스템(400)의 구성을 도 10을 참조하여 보다 구체적으로 설명한다.Hereinafter, the configuration of the API service providing system 400 according to the present invention will be described in more detail with reference to FIG. 10.

도 10은 본 발명의 일 실시예에 따른 API 서비스 제공 시스템의 구성을 보여주는 블록도이다. 도 10에 도시된 바와 같이, 본 발명의 일 실시예에 따른 API 서비스 제공 시스템(400)은 API 인증부(411), API 게이트웨이(412), 및 API 서버(413)를 포함한다. 또한, 본 발명의 일 실시예에 따른 API 서비스 제공 시스템(400)은 API 관리부(414), 정책관리부(415), API 로깅부(416), 및 로그 데이터베이스(417) 중 적어도 하나를 더 포함할 수 있다.10 is a block diagram showing the configuration of an API service providing system according to an embodiment of the present invention. As shown in FIG. 10, the API service providing system 400 according to an embodiment of the present invention includes an API authentication unit 411, an API gateway 412, and an API server 413. In addition, the API service providing system 400 according to an embodiment of the present invention further includes at least one of an API management unit 414, a policy management unit 415, an API logging unit 416, and a log database 417. I can.

먼저, API 인증부(411)는 리퀘스터(500)로부터 API 사용요청이 수신되면, 해당 리퀘스터가 해당 API를 사용할 권한이 있는지 여부를 인증한다. 일 실시예에 있어서, API 사용요청은 리퀘스터(500)의 식별정보 및 해당 리퀘스터(500)가 사용하고자 하는 API의 식별정보를 포함할 수 있다.First, when an API use request is received from the requester 500, the API authentication unit 411 authenticates whether the requester has the right to use the API. In one embodiment, the API use request may include identification information of the requester 500 and identification information of an API intended to be used by the requester 500.

구체적으로, API 인증부(411)는 각 리퀘스터(500)가 사용할 수 있는 API 의 식별정보가 기록된 API 리스트를 참조하여 API 사용요청에 포함된 API를 해당 리퀘스트(500)가 사용할 수 있는지 여부를 확인한다. 확인 결과 해당 리퀘스트(500)가 해당 API를 사용할 수 있는 것으로 판단되면 해당 리퀘스터(500)가 정당한 리퀘스트인 것으로 인증하여 해당 리퀘스터(500)에게 토큰을 발행한다. 이때, 토큰은 일정기간 동안 해당 리퀘스트(500)가 해당 API를 이용할 권한이 있음을 인증해 주는 전자서명 역할을 수행한다.Specifically, the API authentication unit 411 refers to the API list in which the identification information of the API that can be used by each requester 500 is recorded, and whether the corresponding request 500 can use the API included in the API use request. Check. If it is determined that the request 500 can use the API as a result of the verification, the requester 500 authenticates as a legitimate request and issues a token to the requester 500. At this time, the token serves as an electronic signature that authenticates that the request 500 is authorized to use the API for a certain period of time.

일 실시예에 있어서, API 인증부(411)는 토큰 발급시 토큰 발급리스트 상에 각 토큰 별로 해당 토큰의 유효기간 및 이를 사용할 수 있는 리퀘스터(500)의 식별정보를 매핑하여 저장할 수 있다.In an embodiment, the API authentication unit 411 may map and store the validity period of the corresponding token and the identification information of the requester 500 that can use the token on a token issuing list when issuing a token.

한편 API 인증부(411)는 API 게이트웨이(412)로부터 특정토큰이 유효한 토큰인지 여부에 대한 확인요청이 수신되면, 토큰 발급리스트 상에서 확인요청된 토큰의 유효기간을 확인함으로써 확인요청된 토큰이 유효한 토큰인지 여부를 확인한다. 확인결과, 토큰의 유효성 여부가 확인요청된 시간이 토큰 발급리스트 상에 기록된 유효기간 이내인 경우 API 인증부(411)는 해당 토큰이 유효한 것이라는 확인결과를 생성하여 API 게이트웨이(412)로 전송한다.On the other hand, when the API authentication unit 411 receives a confirmation request for whether a specific token is a valid token from the API gateway 412, the requested token is a valid token by checking the validity period of the requested token on the token issuing list. Check whether it is. As a result of the verification, if the validity of the token is within the validity period recorded on the token issuing list, the API authentication unit 411 generates a verification result that the token is valid and transmits it to the API gateway 412. .

API 인증부(411)는 API 게이트웨이(412)로부터 특정토큰이 유효한 토큰인지 여부에 대한 확인요청이 수신되면 토큰 발급리스트 상에서 확인요청된 토큰의 유효기간뿐만 아니라 해당 토큰을 사용할 수 있는 리퀘스터(500)의 식별정보를 추가로 확인하여 해당 토큰이 유효한 토큰인지 여부를 확인할 수도 있다.When the API authentication unit 411 receives a confirmation request for whether a specific token is a valid token from the API gateway 412, the requester 500 that can use the token as well as the validity period of the requested token on the token issuing list is received. ), you can also check whether the token is a valid token.

API 게이트웨이(412)는 리퀘스트(500)로부터 API 실행요청을 수신한다. API 실행요청에는 해당 리퀘스터(500)가 API 인증부(411)로부터 발급받은 토큰, 해당 리퀘스터(500)가 사용할 API의 식별정보, 및 해당 API를 이용하여 실행할 이벤트(또는 명령어)가 포함된다. 이때, 이벤트 또는 명령어는 API를 이용하여 각 시스템(100, 200, 300)에 대해 수행할 데이터 조회요청 또는 쿼리실행요청을 포함할 수 있다.The API gateway 412 receives an API execution request from the request 500. The API execution request includes a token issued by the requester 500 from the API authentication unit 411, identification information of the API to be used by the requester 500, and an event (or command) to be executed using the API. . In this case, the event or command may include a data inquiry request or a query execution request to be performed for each system 100, 200, 300 using an API.

API 게이트웨이(412)는 리퀘스터(500)로부터 API 실행요청이 수신되면, API 실행요청에 포함된 토큰이 유효한 토큰인지 여부를 API 인증부(411)에게 확인요청한다. API 인증부(411)로부터 해당 토큰이 유효한 것이라는 확인결과가 수신되면, API 게이트웨이(412)는 API 실행요청에 포함된 API의 식별정보 및 이벤트를 API 서버(413)로 전송함으로써 API 서버(413)가 해당 API를 호출하여 해당 이벤트를 기초로 API를 실행시킬 수 있도록 한다.When an API execution request is received from the requester 500, the API gateway 412 requests the API authentication unit 411 to confirm whether the token included in the API execution request is a valid token. When a result of confirming that the token is valid is received from the API authentication unit 411, the API gateway 412 transmits the identification information and events of the API included in the API execution request to the API server 413 so that the API server 413 Calls the API so that the API can be executed based on the event.

또한 API 게이트웨이(412)는 해당 API의 실행에 따른 실행결과가 API 서버(413)로부터 수신되면, 수신된 실행결과를 리퀘스터(500)로 전달한다.In addition, when the execution result according to the execution of the API is received from the API server 413, the API gateway 412 transmits the received execution result to the requester 500.

API 서버(413)는 API 게이트웨이(412)로부터 API의 식별정보 및 이벤트가 수신되면, API의 식별정보에 대응되는 API를 호출하여 실행시킴으로써 API 게이트웨이(412)를 통해 수신된 이벤트가 해당 API를 통해 수행될 수 있도록 한다.When the API server 413 receives the API identification information and the event from the API gateway 412, the API server 413 calls and executes the API corresponding to the identification information of the API, so that the event received through the API gateway 412 is transmitted through the API. So that it can be done.

예컨대, API 식별정보에 대응되는 API가 미들웨어 시스템(100)으로의 접속을 위한 API인 경우 API 서버(413)는 도 2에 도시된 바와 같이 미들웨어 시스템(100)으로의 접속을 위한 제1 API를 실행하여 미들웨어 시스템(100)의 큐 저장부(121)에 접속하고, 수신된 이벤트가 큐 저장부(121)에 기록되어 있는 표준화 데이터의 조회요청인 경우 해당 API를 통해 큐 저장부(121)에서 표준화 데이터를 조회함으로써 실행결과를 획득한다.For example, if the API corresponding to the API identification information is an API for accessing the middleware system 100, the API server 413 provides a first API for accessing the middleware system 100 as shown in FIG. It is executed to access the queue storage unit 121 of the middleware system 100, and when the received event is an inquiry request for standardized data recorded in the queue storage unit 121, the queue storage unit 121 through the corresponding API Execution results are obtained by inquiring standardized data.

다른 예로, API 식별정보에 대응되는 API가 분산병렬처리시스템(200)의 메모리부(220)로의 접속을 위한 API인 경우 API 서버(413)는 도 4에 도시된 바와 같이 분산병렬처리시스템(200)의 메모리부(220)로의 접속을 위한 제2 API를 실행하여 분산병렬처리시스템(200)의 메모리부(220)에 접속하고, 수신된 이벤트가 메모리부(220)에 기록된 정렬 데이터의 조회요청인 경우 제2 API를 통해 메모리부(220)에 접속하여 메모리부(220)에서 정렬 데이터를 조회함으로써 실행결과를 획득한다.As another example, when the API corresponding to the API identification information is an API for accessing the memory unit 220 of the distributed parallel processing system 200, the API server 413 is a distributed parallel processing system 200 as shown in FIG. Execute a second API for accessing the memory unit 220 of) to access the memory unit 220 of the distributed parallel processing system 200, and query the alignment data recorded in the memory unit 220 with the received event In the case of a request, an execution result is obtained by accessing the memory unit 220 through the second API and querying the alignment data from the memory unit 220.

또한, API 식별정보에 대응되는 API가 분산병렬처리시스템(200)의 페치수행유닛(211)으로의 접속을 위한 API인 경우 API 서버(413)는 도 4에 도시된 바와 같이 분산병렬처리시스템(200)의 페치수행유닛(211)으로의 접속을 위한 제3 API를 실행하여 분산병렬처리시스템(200)의 페치수행유닛(211)에 접속하고, 수신된 이벤트가 분산병렬처리시스템(200)의 페치수행유닛(211)에 대한 데이터 전달요청인 경우 제3 API를 통해 페치수행유닛(211)에 접속하여 해당 데이터를 페치수행유닛(211)으로 전달한다In addition, when the API corresponding to the API identification information is an API for accessing the fetching unit 211 of the distributed parallel processing system 200, the API server 413 is a distributed parallel processing system ( By executing a third API for accessing the fetching unit 211 of 200), it is connected to the fetching unit 211 of the distributed parallel processing system 200, and the received event is sent to the distributed parallel processing system 200. In the case of a data transmission request to the fetching unit 211, the data is transmitted to the fetching unit 211 by accessing the fetching unit 211 through a third API.

한편, API 식별정보에 대응되는 API가 분산병렬처리시스템(200)의 설비이상 감지 수행유닛(217) 또는 품질이상 감지 수행유닛(218)으로의 접속을 위한 API인 경우 API 서버(413)는 도 4에 도시된 바와 같이 분산병렬처리시스템(200)의 설비이상 감지 수행유닛(217) 또는 품질이상 감지 수행유닛(218)으로의 접속을 위한 제4 API를 실행하여 분산병렬처리시스템(200)의 설비이상 감지 수행유닛(217) 또는 품질이상 감지 수행유닛(218)에 접속하고, 수신된 이벤트가 분산병렬처리시스템(200)의 설비이상 감지 수행유닛(217) 또는 품질이상 감지 수행유닛(218)으로부터의 이벤트 수신인 경우 제4 API를 통해 설비이상 감지 수행유닛(217) 또는 품질이상 감지 수행유닛(218)에 접속하여 설비이상 감지 수행유닛(217) 또는 품질이상 감지 수행유닛(218)에서 발생된 이벤트를 수신한다.On the other hand, when the API corresponding to the API identification information is an API for accessing the facility abnormality detection execution unit 217 or the quality abnormality detection execution unit 218 of the distributed parallel processing system 200, the API server 413 As shown in Figure 4, by executing the fourth API for access to the facility abnormality detection execution unit 217 or the quality abnormality detection execution unit 218 of the distributed parallel processing system 200, the distributed parallel processing system 200 Equipment abnormality detection execution unit 217 or quality abnormality detection execution unit 218 connected to the equipment abnormality detection execution unit 217 or quality abnormality detection execution unit 218, and the received event is In case of receiving an event from the facility abnormality detection execution unit 217 or the quality abnormality detection execution unit 218 through the fourth API, the equipment abnormality detection execution unit 217 or the quality abnormality detection execution unit 218 Receive an event.

또 다른 예로, API 식별정보에 대응되는 API가 빅데이터 분석 시스템(300)의 쿼리처리부(330)로의 접속을 위한 API인 경우 API 서버(413)는 도 4에 도시된 바와 같이 분석 시스템(300)의 쿼리처리부(330)로의 접속을 위한 제5 API를 실행하여 분석 시스템(300)의 쿼리처리부(330)에 접속하고, 수신된 이벤트가 빅데이터 저장소(320)에 기록된 데이터 조회요청인 경우 해당 API의 실행을 통해 데이터 조회요청에 대한 쿼리를 생성하여 쿼리처리부(330)로 전송하고, 해당 쿼리의 실행으로 획득되는 데이터를 API를 통해 수신한다.As another example, when the API corresponding to the API identification information is an API for accessing the query processing unit 330 of the big data analysis system 300, the API server 413 is the analysis system 300 as shown in FIG. When the fifth API for access to the query processing unit 330 of is accessed to access the query processing unit 330 of the analysis system 300, and the received event is a data inquiry request recorded in the big data storage 320, the corresponding Through the execution of the API, a query for a data inquiry request is generated and transmitted to the query processing unit 330, and data obtained by executing the query is received through the API.

한편, API 식별정보에 대응되는 API가 빅데이터 분석 시스템(300)의 분석장치(340)로의 접속을 위한 API인 경우 API 서버(413)는 도 4에 도시된 바와 같이 분석 시스템(300)의 분석장치(340)로의 접속을 위한 제6 API를 실행하여 분석 시스템(300)의 분석장치(340)에 접속하고, 수신된 이벤트가 특정 분석모델의 실행요청인 경우 API 서버(413)는 제6 API의 실행을 통해 분석장치(340)가 특정 분석모델을 호출할 수 있도록 하고, 해당 분석모델의 실행에 따른 빅데이터 분석결과를 분석장치(340)로부터 수신한다.On the other hand, when the API corresponding to the API identification information is an API for accessing the analysis device 340 of the big data analysis system 300, the API server 413 analyzes the analysis system 300 as shown in FIG. When the sixth API for access to the device 340 is executed to access the analysis device 340 of the analysis system 300, and the received event is a request for execution of a specific analysis model, the API server 413 Through the execution of, the analysis device 340 can call a specific analysis model, and the big data analysis result according to the execution of the corresponding analysis model is received from the analysis device 340.

API 서버(413)는 수신된 이벤트에 따른 API의 실행에 의해 획득된 실행결과를 API 게이트웨이(412)를 통해 리퀘스터(500)로 제공한다. 일 실시예에 있어서, API 서버(413)는 실행결과를 API 게이트웨이(412)를 경유하지 않고 직접 리퀘스터(500)로 전송할 수도 있다. 구체적으로, API 서버(413)는 실행결과의 데이터 양이 미리 정해진 기준치를 초과하는 경우 해당 실행결과를 직접 리퀘스터(500)로 전송할 수 있다.The API server 413 provides the execution result obtained by executing the API according to the received event to the requester 500 through the API gateway 412. In an embodiment, the API server 413 may directly transmit the execution result to the requester 500 without passing through the API gateway 412. Specifically, the API server 413 may directly transmit the execution result to the requester 500 when the amount of data in the execution result exceeds a predetermined reference value.

API 관리부(414)는 API의 추가, 삭제, 또는 수정을 수행한다. 구체적으로, API 관리부(414)는 API에 대한 함수를 새로 정의함으로써 API를 추가할 수 있다. 또한, API 관리부(414)는 기존 API 함수를 수정하거나 또는 API를 삭제할 수도 있다. API에 대한 함수는 각 해당 API가 접속할 시스템(100, 200, 300)에 대한 정보, 해당 API를 이용하는 리퀘스터(500)에 대한 정보, 호출할 쿼리구문 또는 함수, 조건값, 전달할 데이터, 전달할 이벤트, 회신여부, 회신유형 등을 포함하는 파라미터로 구성될 수 있다.The API management unit 414 adds, deletes, or modifies an API. Specifically, the API management unit 414 may add an API by newly defining a function for the API. In addition, the API management unit 414 may modify an existing API function or delete an API. API functions include information on the system (100, 200, 300) to which each corresponding API will access, information on the requester 500 using the API, query syntax or function to be called, condition value, data to be transmitted, event to be transmitted , It can be configured with parameters including whether to reply, reply type, etc.

정책관리부(415)는 각 리퀘스터(500) 별로 해당 리퀘스터(500)가 사용할 수 있는 API 식별정보들이 매핑되어 있는 API 리스트를 생성한다. API 리스트에는 각 리퀘스터(500)의 식별정보와 해당 리퀘스터(500)가 사용할 수 있는 API 식별 정보가 매핑되어 기록된다. The policy management unit 415 generates an API list in which API identification information that can be used by the requester 500 is mapped for each requester 500. In the API list, identification information of each requester 500 and API identification information that can be used by the requester 500 are mapped and recorded.

API 로깅부(416)는 API 게이트웨이(412) 또는 API 서버(413)를 통해 송수신되는 실행결과 및 이벤트를 로그 데이터베이스(417)에 기록한다. 이때, API 로깅부(416)는 실행결과 또는 이벤트의 송수신 시간을 해당 실행결과 또는 이벤트와 매핑시켜 로그 데이터베이스(417)에 기록한다.The API logging unit 416 records execution results and events transmitted and received through the API gateway 412 or the API server 413 in the log database 417. At this time, the API logging unit 416 maps the execution result or the transmission/reception time of the event to the execution result or event and records it in the log database 417.

다시 도 1을 참조하면, 리퀘스터(500)는 스마트팩토리 플랫폼(1000)에 이벤트를 전송하거나 스마트팩토리 플랫폼(1000)으로부터 데이터를 수신하는 다양한 형태의 시스템 또는 사용자를 포함한다.Referring back to FIG. 1, the requester 500 includes various types of systems or users that transmit events to the smart factory platform 1000 or receive data from the smart factory platform 1000.

일 실시예에 있어서, 리퀘스터(500)는 API 서비스 제공 시스템(400)에 의해 제공되는 API를 통해 스마트팩토리 플랫폼(1000)에 접속할 수 있다.In one embodiment, the requester 500 may access the smart factory platform 1000 through an API provided by the API service providing system 400.

이러한 리퀘스터(500)는 앱(App), 어플리케이션((Application), 작업(Job), 또는 사용자(User)를 포함할 수 있다.The requester 500 may include an app, an application, a job, or a user.

앱은 모바일에 설치되어 특화된 기능 또는 서비스를 담당하는 소프트웨어를 의미한다. 어플리케이션은 MES, SCM, ERP와 같은 레거시(Legacy) 시스템을 의미하는 것으로서 웹(Web) 화면을 통해 데이터 및 이벤트를 조회하거나 전송하거나 웹 화면이 없이 AP서버 형태로 실행되는 시스템을 의미한다. An app refers to software that is installed on the mobile and is in charge of specialized functions or services. An application refers to a legacy system such as MES, SCM, and ERP, and refers to a system that searches or transmits data and events through a web screen, or runs in the form of an AP server without a web screen.

작업은 API 서비스 호출을 위해 생성된 프로세스상의 작업을 의미하며, 하나의 작업은 또 다른 작업을 호출 할 수 있다.Task refers to a task in a process created to call an API service, and one task can call another task.

사용자는 다양한 분석 툴 또는 BI 툴을 통해 직접 쿼리를 실행하거나 API를 호출하는 개발자 및 운영자를 의미하거나, 프로그램 개발을 위해 API를 호출하는 개발자 및 운영자 등 플랫폼 API서비스를 호출하는 사용자를 의미한다.Users refer to developers and operators who directly execute queries or call APIs through various analysis tools or BI tools, or users who call platform API services such as developers and operators who call APIs for program development.

본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.Those of ordinary skill in the art to which the present invention pertains will be able to understand that the above-described present invention can be implemented in other specific forms without changing the technical spirit or essential features thereof.

그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, it should be understood that the embodiments described above are illustrative in all respects and not limiting. The scope of the present invention is indicated by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

Claims (17)

데이터 수집장치로부터 수집된 수집데이터를 전처리하는 미들웨어 시스템;
상기 전처리된 수집데이터에 상기 수집데이터가 발생된 공정의 공정 식별자를 매핑하여 매핑 데이터를 생성하고, 생성된 매핑 데이터를 미리 정해진 기준에 따라 정렬하여 정렬 데이터를 생성하는 분산병렬처리시스템; 및
빅데이터 분석모델을 이용하여 상기 정렬 데이터를 분석하는 고속 빅데이터 분석 시스템을 포함하고,
상기 고속 빅데이터 분석 시스템은,
상기 정렬 데이터가 인스턴스 내에 바이너리 형태로 저장되는 제1 빅데이터 저장부;
상기 제1 빅데이터 저장부에 저장된 정렬 데이터가 디스크 내에 파일로 저장되는 제2 빅데이터 저장부;
미리 정해진 이벤트가 발생되면 상기 제1 빅데이터 저장부에 저장된 정렬 데이터를 상기 파일로 생성하여 상기 제2 빅데이터 저장부에 저장하는 파일생성유닛; 및
상기 제1 빅데이터 저장부에 저장된 정렬 데이터를 실시간성 빅데이터 분석모델을 이용하여 분석하고, 상기 제2 빅데이터 저장부에 저장된 정렬 데이터를 비실시간성 빅데이터 분석모델을 이용하여 분석하는 분석장치를 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
A middleware system that pre-processes the collected data collected from the data collection device;
A distributed parallel processing system for generating mapping data by mapping a process identifier of a process in which the collected data is generated to the pre-processed collected data, and generating alignment data by aligning the generated mapping data according to a predetermined criterion; And
Including a high-speed big data analysis system for analyzing the alignment data using a big data analysis model,
The high-speed big data analysis system,
A first big data storage unit in which the alignment data is stored in an instance in a binary format;
A second big data storage unit for storing the alignment data stored in the first big data storage unit as a file in the disk;
A file generation unit generating the alignment data stored in the first big data storage unit as the file when a predetermined event occurs and storing the alignment data in the second big data storage unit; And
An analysis device that analyzes the alignment data stored in the first big data storage unit using a real-time big data analysis model, and analyzes the alignment data stored in the second big data storage unit using a non-real-time big data analysis model Smart factory system for performing high-speed big data analysis comprising a.
제1항에 있어서,
상기 실시간성 빅데이터 분석모델은 재료 또는 제품에 대한 품질판정을 위한 품질판정모델, 상기 수집 데이터가 발생된 설비의 모니터링을 위한 설비모니터링 분석모델, 및 상기 수집 데이터가 발생된 공정의 이상발생여부를 감지하기 위한 이상발생 감지모델 중 적어도 하나를 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The real-time big data analysis model includes a quality determination model for quality determination of materials or products, a facility monitoring analysis model for monitoring facilities in which the collected data is generated, and whether or not an abnormality occurs in the process in which the collected data is generated. Smart factory system for performing high-speed big data analysis, characterized in that it comprises at least one of the abnormal occurrence detection models for detection.
제1항에 있어서,
상기 비실시간성 빅데이터 분석모델은 인공지능 학습모델 및 트렌드 분석 중 적어도 하나를 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The non-real-time big data analysis model is a smart factory system for performing high-speed big data analysis, characterized in that it includes at least one of an artificial intelligence learning model and a trend analysis.
삭제delete 제1항에 있어서,
상기 미리 정해진 이벤트는, 미리 정해진 기간이 경과하거나 상기 정렬 데이터의 변경이 완료되어 상기 정렬 데이터가 확정되는 것인 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The predetermined event is a smart factory system for performing high-speed big data analysis, characterized in that the alignment data is determined after a predetermined period has elapsed or a change of the alignment data is completed.
제1항에 있어서,
상기 고속 빅데이터 분석 시스템은
상기 분산병렬처리시스템의 메모리부로부터 상기 정렬 데이터를 독출하는 정렬데이터 페치유닛;
상기 독출된 정렬 데이터를 상기 제1 빅데이터 저장부의 상기 인스턴스에 기록하는 데이터 저장부를 더 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템;
The method of claim 1,
The high-speed big data analysis system
An alignment data fetch unit reading the alignment data from a memory unit of the distributed parallel processing system;
A smart factory system for performing high-speed big data analysis, further comprising a data storage unit for recording the read alignment data in the instance of the first big data storage unit;
제6항에 있어서,
상기 파일생성유닛은 상기 메모리부에 저장된 정렬 데이터들 중 미리 정해진 크기를 초과하는 정렬 데이터를 상기 파일로 직접 생성하여 상기 제2 빅데이터 저장부에 저장하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 6,
The file generation unit performs high-speed big data analysis, characterized in that the alignment data exceeding a predetermined size among the alignment data stored in the memory unit is directly generated as the file and stored in the second big data storage unit. Smart factory system.
제1항에 있어서,
상기 고속 빅데이터 분석 시스템은 적어도 하나의 빅데이터 분석모델이 저장된 모델저장부를 더 포함하고,
상기 분석장치는 리퀘스터(Requester)의 요청에 따라 상기 적어도 하나의 빅데이터 분석모델 중 어느 하나에 대한 실행요청이 수신되면 상기 실행요청된 빅데이터 분석모델을 실행시켜 빅데이터 분석결과를 획득하고, 획득된 빅데이터 분석결과를 상기 리퀘스터로 리턴하고,
상기 빅데이터 분석모델 중 어느 하나에 대한 실행요청은 상기 리퀘스터와 상기 고속 빅데이터 분석 시스템간의 접속을 위한 API(Application Programming Interface)를 통해 수신되고, 상기 빅데이터 분석결과는 상기 API 를 통해 상기 리퀘스터로 제공되는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The high-speed big data analysis system further includes a model storage unit storing at least one big data analysis model,
When an execution request for any one of the at least one big data analysis model is received in response to a request from a requester, the analysis device executes the requested big data analysis model to obtain a big data analysis result, Return the obtained big data analysis result to the requester,
An execution request for any one of the big data analysis models is received through an application programming interface (API) for connection between the requester and the high-speed big data analysis system, and the big data analysis result is received through the API. A smart factory system that performs high-speed big data analysis, characterized in that it is provided as a tester.
제8항에 있어서,
상기 분석장치는,
상기 실행요청된 빅데이터 분석모델을 상기 모델저장부로부터 로딩함으로써 해당 빅데이터 분석모델을 호출하는 분석모델 호출부;
상기 호출된 빅데이터 분석모델을 실행시켜 상기 빅데이터 분석결과를 획득하는 분석모델 실행부; 및
상기 분석모델 실행부에 의해 획득된 상기 빅데이터 분석결과를 상기 리퀘스터로 전송하는 분석결과 전송부를 더 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 8,
The analysis device,
An analysis model calling unit for calling a corresponding big data analysis model by loading the requested big data analysis model from the model storage unit;
An analysis model execution unit that executes the called big data analysis model to obtain the big data analysis result; And
A smart factory system for performing high-speed big data analysis, further comprising: an analysis result transmission unit for transmitting the analysis result of the big data obtained by the analysis model execution unit to the requester.
제9항에 있어서,
상기 분석모델 실행부는 상기 실행요청된 빅데이터 분석모델이 재료 또는 제품에 대한 품질판정을 위한 품질판정모델, 상기 수집 데이터가 발생된 설비의 모니터링을 위한 설비모니터링 분석모델, 및 상기 수집 데이터가 발생된 공정의 이상발생여부를 감지하기 위한 이상발생 감지모델 중 적어도 하나를 포함하는 실시간성 빅데이터 분석모델인 경우 상기 제1 빅데이터 저장부에 저장된 정렬 데이터를 이용하여 해당 분석모델을 실행시켜 상기 빅데이터 분석결과를 획득하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 9,
In the analysis model execution unit, the big data analysis model requested to be executed is a quality determination model for quality determination of materials or products, a facility monitoring analysis model for monitoring the facility in which the collected data is generated, and the collected data are generated. In the case of a real-time big data analysis model including at least one of an abnormality detection model for detecting whether an abnormality occurs in a process, the big data is executed by executing the corresponding analysis model using the alignment data stored in the first big data storage A smart factory system that performs high-speed big data analysis, characterized in that acquiring analysis results.
제9항에 있어서,
상기 분석모델 실행부는 상기 실행요청된 빅데이터 분석모델이 인공지능 학습모델 및 트렌드 분석 중 적어도 하나를 비실시간성 빅데이터 분석모델인 경우 상기 제2 빅데이터 저장부에 저장된 파일을 이용하여 해당 분석모델을 실행시켜 상기 빅데이터 분석결과를 획득하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 9,
The analysis model execution unit uses a file stored in the second big data storage unit when the requested big data analysis model is a non-real-time big data analysis model for at least one of an artificial intelligence learning model and a trend analysis. Smart factory system for performing high-speed big data analysis, characterized in that to obtain the big data analysis result by executing.
제1항에 있어서,
상기 고속 빅데이터 분석 시스템은,
상기 분산병렬처리시스템의 메모리부를 모니터링하여 상기 정렬 데이터의 저장완료를 나타내는 완료 이벤트를 수신하는 완료이벤트 수신유닛; 및,
상기 완료이벤트 수신유닛으로부터 상기 완료 이벤트가 전달되면 상기 메모리부를 조회하여 상기 완료 이벤트에 대응되는 상기 정렬데이터를 획득하는 정렬데이터 페치유닛을 더 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The high-speed big data analysis system,
A completion event receiving unit for monitoring a memory unit of the distributed parallel processing system to receive a completion event indicating completion of storing the alignment data; And,
When the completion event is transmitted from the completion event receiving unit, a smart factory for performing high-speed big data analysis, further comprising an alignment data fetching unit for inquiring the memory unit to obtain the alignment data corresponding to the completion event. system.
제12항에 있어서,
상기 정렬데이터 페치유닛은 상기 완료 이벤트에 포함된 키 정보를 이용해서 해당 완료 이벤트에 대응되는 정렬 데이터가 저장된 메모리부의 파티션 정보 및 디렉토리 정보를 획득하고, 획득된 파티션 정보 및 디렉토리 정보를 참조하여 상기 메모리부에서 상기 정렬데이터를 획득하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 12,
The alignment data fetch unit acquires partition information and directory information of a memory unit in which alignment data corresponding to a corresponding completion event is stored using key information included in the completion event, and refers to the obtained partition information and directory information to the memory. A smart factory system that performs high-speed big data analysis, characterized in that the unit acquires the alignment data.
제1항에 있어서,
상기 고속 빅데이터 분석 시스템은 외부로부터 입력되는 쿼리를 실행하여 상기 쿼리에 대한 실행결과를 리턴하는 쿼리 처리부를 더 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The high-speed big data analysis system further comprises a query processing unit that executes a query input from an external source and returns an execution result for the query.
제14항에 있어서,
상기 쿼리는 리퀘스터와 상기 고속 빅데이터 분석 시스템간의 접속을 위한 API를 통해 생성되고, 상기 쿼리에 대한 실행결과는 상기 API 를 통해 상기 리퀘스터로 제공되는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 14,
The query is generated through an API for connection between the requester and the high-speed big data analysis system, and the execution result of the query is provided to the requester through the API. Smart factory system.
제1항에 있어서,
상기 공정 식별자 매핑은 상기 수집 데이터가 발생된 설비의 설비 식별자 매핑 및 상기 설비를 통해 가공된 재료의 재료 식별자 매핑 중 적어도 하나를 포함하는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The process identifier mapping includes at least one of a facility identifier mapping of a facility in which the collected data is generated and a material identifier mapping of a material processed through the facility. A smart factory system for performing high-speed big data analysis.
제1항에 있어서,
상기 정렬데이터는 상기 공정 식별자가 매핑된 매핑 데이터들을 수집 시간 순서 및 재료 단위 중 적어도 하나에 따라 정렬하여 생성되는 것을 특징으로 하는 고속 빅데이터 분석을 수행하는 스마트팩토리 시스템.
The method of claim 1,
The alignment data is generated by arranging mapping data to which the process identifier is mapped according to at least one of a collection time sequence and a material unit.
KR1020180174051A 2018-02-08 2018-12-31 Smart Factory System for Performing High Speed Big Data Analysis KR102210972B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180015650 2018-02-08
KR1020180015650 2018-02-08

Publications (2)

Publication Number Publication Date
KR20190100846A KR20190100846A (en) 2019-08-29
KR102210972B1 true KR102210972B1 (en) 2021-02-02

Family

ID=67775758

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020180174051A KR102210972B1 (en) 2018-02-08 2018-12-31 Smart Factory System for Performing High Speed Big Data Analysis
KR1020180174072A KR102216311B1 (en) 2018-02-08 2018-12-31 Smart Factory System Based on Application Programming Interface

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020180174072A KR102216311B1 (en) 2018-02-08 2018-12-31 Smart Factory System Based on Application Programming Interface

Country Status (1)

Country Link
KR (2) KR102210972B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220110943A (en) 2021-02-01 2022-08-09 (주)한도씨앤에스 Control and management system for realizing smart factory
KR102436870B1 (en) 2022-05-31 2022-08-26 주식회사 영일메카텍 Machine Integrated Monitoring System for Smart Factory Implementation

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102106373B1 (en) 2019-11-11 2020-05-04 이민우 Manufacturing execution system for smart factory based on blockchain interworking
WO2021107180A1 (en) * 2019-11-27 2021-06-03 위즈코어 주식회사 Manufacturing big data-based machine learning apparatus and method
KR102311784B1 (en) * 2020-01-17 2021-10-12 경상국립대학교 산학협력단 Building Method of Plastic Working Process Information Based on AI
WO2021222436A1 (en) * 2020-04-28 2021-11-04 Buckman Laboratories International, Inc. Contextual modeling and proactive inventory management system and method for industrial plants
KR102411291B1 (en) * 2020-09-25 2022-06-27 (주)디엘정보기술 Method of evaluating quality of smart factory data
KR102509402B1 (en) * 2020-12-09 2023-03-13 주식회사 에이앤에이 A method for processing the event on the platform
CN116881304B (en) * 2023-07-25 2024-03-22 连云港电子口岸信息发展有限公司 API gateway arrangement management system and method based on distributed EDI

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101663580B1 (en) * 2013-03-08 2016-10-07 심플렉스 인터넷 주식회사 Electronic commerce recommendation and analysis sysmem, and recommendation and analysis sysmem method
KR20150112357A (en) * 2014-03-27 2015-10-07 (주)시엠아이코리아 Sensor data processing system and method thereof
KR20170062244A (en) * 2015-11-27 2017-06-07 주식회사 비디 Api managing apparatus
KR102089818B1 (en) * 2015-12-31 2020-03-17 주식회사 포스코아이씨티 System for processing big data in a realtime

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220110943A (en) 2021-02-01 2022-08-09 (주)한도씨앤에스 Control and management system for realizing smart factory
KR102436870B1 (en) 2022-05-31 2022-08-26 주식회사 영일메카텍 Machine Integrated Monitoring System for Smart Factory Implementation

Also Published As

Publication number Publication date
KR102216311B1 (en) 2021-02-17
KR20190100847A (en) 2019-08-29
KR20190100846A (en) 2019-08-29

Similar Documents

Publication Publication Date Title
KR102210972B1 (en) Smart Factory System for Performing High Speed Big Data Analysis
KR101892350B1 (en) Smart factory flatform for processing mass data of continuous process in a real time
KR101892351B1 (en) Big Data Analysis System for Smart Factory
CN107798460B (en) Intelligent factory platform for processing data obtained in a continuous process
CN102298365B (en) Method for automatically identifying and managing spaceflight measurement and control earth station device change
KR101951526B1 (en) Interface Middleware System for Smart Factory Platform and Method for Operating The Same
US20090089325A1 (en) Targeted resource allocation
CN106383916B (en) Data processing method based on predictive maintenance of industrial equipment
KR101938946B1 (en) Interface Middleware System for Collecting Mass Data and Method for Collecting Data of Interface Middleware System
CN112016828B (en) Industrial equipment health management cloud platform architecture based on streaming big data
CN104392297A (en) Method and system for realizing non-business process irregularity detection in large data environment
CN109308290B (en) Efficient data cleaning and converting method based on CIM
KR20180026596A (en) Distributed Parallel Processing System for Processing Data Of Continuous Process In Rea Time
CN116842055A (en) System and method for integrated processing of internet of things data batch flow
US5729736A (en) Access analysis method and system in parallel data base system
CN117172641A (en) Production logistics management platform based on block chain and digital twin and implementation method
KR101892352B1 (en) Middleware system for standardizing data of continuous process
KR101951527B1 (en) Real time processing system of mass data for managing memory cache automatically
KR102032680B1 (en) Distributed Parallel Processing System for Processing Data Of Continuous Process In Real Time
CN116483831A (en) Recommendation index generation method for distributed database
KR102312523B1 (en) Interface Middleware System for Collecting Mass Data
CN112311679B (en) State detection method, state detection device, electronic equipment and readable storage medium
CA2485159A1 (en) Comparison of processing protocols
CN112689804B (en) Method for integrating data of assets of a technical installation into a platform, digital platform and computer program product
Martino et al. Benchmarking management techniques for massive IIoT time series in a fog architecture

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