<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/resources/xsl/jats-html.xsl"?>
<article article-type="research-article" dtd-version="1.1" xml:lang="ko" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
	<journal-meta>
		<journal-id journal-id-type="publisher-id">jkits</journal-id>
		<journal-title-group>
		<journal-title>한국지식정보기술학회 논문지</journal-title>
		<journal-title xml:lang="en">Journal of Knowledge Information Technology and Systems</journal-title>
		</journal-title-group>
		<issn pub-type="ppub">1975-7700</issn>
		<publisher>
		<publisher-name>한국지식정보기술학회</publisher-name>
		<publisher-name xml:lang="en">Korea Knowledge Information Technology Society</publisher-name>
		</publisher>
	</journal-meta>
	<article-meta>
		<article-id pub-id-type="publisher-id">jkits_2019_14_03_257</article-id>
		<article-id pub-id-type="doi">10.34163/jkits.2019.14.3.005</article-id>
		<article-categories>
			<subj-group>
				<subject>Research Article</subject>
			</subj-group>
		</article-categories>
		<title-group>
			<article-title>Rasberry Pi를 이용한 분산 메시징 기반 빅 데이터 수집 시스템 구현</article-title>
			<trans-title-group xml:lang="en">
				<trans-title>Implement of Big Data Collecting System Based on Distributed Messaging(BDCS-DM) Using the Rasberry Pi</trans-title>
			</trans-title-group>
		</title-group>
		<contrib-group>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>허</surname>
						<given-names>선영</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Heo</surname>
						<given-names>Sun-Young</given-names>
					</name>
				</name-alternatives>
				<xref ref-type="aff" rid="A1"><sup>*</sup></xref>
			</contrib>
			</contrib-group>
		<aff-alternatives id="A1">
			<aff><italic>한국기술교육대학교 온라인평생교육원</italic></aff>
			<aff xml:lang="en"><italic>Online Lifelong Education Institute, Korea University of Technology and Education</italic></aff>
		</aff-alternatives>
				<author-notes>
			<fn id="fn001"><label>*</label><p>Corresponding author is with the Online Lifelong Education Institute, Korea University of Technology and Education, Tel : +82 41 560 1484, Fax: +82 41 560 1484.</p><p><italic>E-mail address</italic>: :<email>hsysj119@koreatech.ac.kr</email></p></fn>
		</author-notes>
			<pub-date pub-type="ppub">
			<month>06</month>
			<year>2019</year>
		</pub-date>
		<volume>14</volume>
		<issue>3</issue>
		<fpage>257</fpage>
		<lpage>266</lpage>
		<history>
			<date date-type="received">
				<day>16</day>
				<month>5</month>
				<year>2019</year>
			</date>
			<date date-type="rev-recd">
				<day>28</day>
				<month>5</month>
				<year>2019</year>
			</date>
			<date date-type="accepted">
				<day>7</day>
				<month>6</month>
				<year>2019</year>
			</date>
		</history>
		<permissions>
			<copyright-statement>&#x00A9; 2019 KKITS All rights reserved</copyright-statement>
			<copyright-year>2019</copyright-year>
		</permissions>
		<abstract>
		<title>요약</title>
		<p>최근 스마트팩토리가 이슈화되면서 기존 MES, SCADA, PLC 등의 시스템을 사용하고 있는 공장에서 PLC 데이터를 수집 및 분석하여 CPS를 구축하고자 하는 움직임이 활발하다. 그러나 현장에서는 기존 시스템을 분석하고 빅데이터 수집 및 저장을 위한 환경 구축 비용과 시간이 많이 투자된다는 이유로 기존 공장을 스마트팩토리화하는데 많은 어려움을 격고 있다. 이에 본 논문에서는 기존 시스템의 Modbus를 통해 전 송되는 PLC 데이터를 읽어서 빅데이터 서버로 송신하기 위한 Rasberry Pi 보드를 추가설치함으로써 PLC 데이터 수집이 가능하도록 하기 위한 분산 메시징 기반 빅데이터 수집 시스템(Big Data Collecting System based on Distributed Messaging:BDCS-DM)을 설계 및 구현하였다. 시뮬레이션을 통하여 Raspberry Pi를 설치함으로써 데이터 수집 성능 향상됨을 확인할 수 있었고, 추가 가능한 적정한 Raspberry Pi의 개수는 3대 이며, 1ms 주기의 PLC 데이터 수집 성능을 보장하기 위해서는 Ethernet 환경에서 10ms당 10개의 Point를 묶어서 전송하는 것이 효과적이라는 것을 알 수 있었다. 구현한 시스템은 스마트팩토리뿐만 아니라 빅데이터를 사용하는 모든 분야에서 응용 가능할 것으로 판단된다.</p>
		</abstract>
		<trans-abstract xml:lang="en">
	<title>ABSTRACT</title>
<p>Recently, as the Smart Factories become an issue, there is an active movement to construct CPS by collecting and analyzing PLC data at factories that already use pre-built systems such as MES, SCADA, and PLC. However, in order to read the PLC data from the pre-built MES middleware and transfer it to Hadoop, the pre-built MES middleware developer must input the labor, and it takes a lot of investment and time to collect various data from the PLC and store it in the big data storage. Due to these problems, SMEs have a lot of difficulties in making pre-built factories into smart factories. In this paper, we have designed and implemented Big Data Collecting System based on Distributed Messaging(BDCS-DM) that can read the PLC data transmitted through Modbus of pre-built MES system at low cost using Rasberry Pi board. Through simulation, we confirmed that data collection performance is improved by installing a Rasberry Pi board, and have come to the conclusion that three Rasberry Pi board can be added. Also, in order to guarantee the performance for PLC data collection per 1ms cycle, we could see that effective to transmit 10 points per 10ms cycle in the Ethernet environment. Implemented system is expected to be possible to apply on not only the smart factory but also any fields using Big Data and further researches will be made for possible application on other fields.</p>
		</trans-abstract>
		<kwd-group kwd-group-type="author" xml:lang="en">
			<kwd>Smart factory</kwd>
			<kwd>Big data collecting systems</kwd>
			<kwd>IoT</kwd>
			<kwd>CPS</kwd>
			<kwd>Distributed messaging</kwd>
		</kwd-group>
	</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
	<title>1. 서 론</title>
<p>CPS(Cyber-Physical System) 기반의 ‘스마트 팩토리’와 인더스트리 4.0(Industry 4.0)은 개인화된 고객의 요구사항을 반영한 대량 고객 맞춤화, 개인 맞춤형 제품 제조 시대로 그 흐름을 변화시켰다[<xref ref-type="bibr" rid="B001">1</xref>-<xref ref-type="bibr" rid="B003">3</xref>]. CPS는 서로 인터넷 상의 서비스와 연결되어 있는 다양한 센서를 통해 수집된 데이터를 기반으로 제조 현장의 설비 간 네트워크에서부터 설계, 운영에 관련된 최적화된 의사결정을 통합할 수 있어야 한다[<xref ref-type="bibr" rid="B004">4</xref>-<xref ref-type="bibr" rid="B006">6</xref>].</p>
<p>현재, CPS 기반의 스마트 팩토리 구축 관련 연구가 활발히 진행 중이다. <xref ref-type="bibr" rid="B007">[7]</xref>의 연구에서는 큰 크기의파일처리에 적합하도록 설계되어 있는 Hadoop을 기반으로 작은 파일들을 효율적으로 처리하기 위한 병합 방법을, <xref ref-type="bibr" rid="B008">[8]</xref>의 연구에서는 자동화 시스템을 운반하는 다중 경로를 기계 학습 알고리즘을 이용하여 조작하는 알고리즘을, <xref ref-type="bibr" rid="B009">[9]</xref>의 연구에서는 스마트 팩토리 구축에 수반되어야 하는 것이 유선과 무선 네트워크 환경이 서로 공존임과 무선 네트워크상에서 발생하는 문제점 해결을 위한 연구가 빠르게 진행되어야 함을 피력하였다. 또한, <xref ref-type="bibr" rid="B010">[10]</xref>의 연구에서는 공정데이터들을 고속의 빅 데이터 처리를 위한 인-메모리 데이터 그리드를 이용한 시스템을, <xref ref-type="bibr" rid="B011">[11]</xref>의 연구에서는 제조라인에서 발생하는 이상상황을 기계 학습기반으로 진단한 후, 제조라인을 재구성하는 함으로써 제조라인의 신뢰성을 향상하고자 하였다.</p>
<p>본 연구에 앞서 수행한 선행 프로젝트로 MES, SCADA, PLC 등의 시스템을 사용하고 있는 기존 공장에서 CPS 구축을 위하여 MES 미들웨어에서 PLC데이터를 읽어와 하둡(Hadoop)에 전송하는 프로젝트를 진행했었다[<xref ref-type="bibr" rid="B012">12</xref>-<xref ref-type="bibr" rid="B014">14</xref>]. 그 결과, MES 미들웨어로부터 PLC 데이터를 읽는 주기를 ms 단위로 할 경우 MES 시스템 운영에 영향을 주어서 주기를 1초 제한하여 처리할 수밖에 없었고, 기존 MES 미들웨어 개발업체의 인력이 투입되어야 하는 문제로 인하여, 기존의 공장들이 스마트 팩토리화하는데 어려움을 겪고 있다. 이에 본 논문에서는 MES 시스템과 무관하게 PLC 데이터를 저비용으로 수집할 수 있도록 라즈베리파이(Rasberry Pi) 보드를 이용한 Kafka 기반 빅 데이터수집 시스템(BDCS-DM)을 설계 및 구현하였다.</p>
<p>본 논문에서는 성능 목표를 1ms 단위로 실시간 수집하는 것이었으나, 네트워크의 레이턴시 제약으로 1ms 단위의 이벤트 구현은 불가능하여 1ms당 10개의 데이터를 전송하는 것으로 목표를 수정하였다.</p>
<p>우선 PLC가 설치되어 있는 곳에 라즈베리파이 보드를 같은 네트워크에 연결하고 라즈베리파이 보드에서 직접 PLC의 데이터를 읽어와 Kafka를 통해 하둡 시스템에 데이터를 전송하는 PLC 데이터 수집장치를 설계 및 구현한 후 최적의 데이터 수집 조건을 도출하기 위해 데이터 전송 네트워크 환경이 유선일 때와 무선일 때로 나누어 1차 테스트를 수행하였다. 1차 테스트 결과와 PLC Emulator를 라즈베리파이 보드에 구현한 것과 Kafka 서버에 구현해 놓은 PLC Emulator의 성능을 비교 및 분석한 후 1ms 주기의 PLC 데이터 수집 성능을 보장하기 위해한 동일한 환경에서 최적의 Data Agent와 Data Point 수를 구하기 위한 테스트를 병행하였다.</p>
<p>본 논문의 구성은 다음과 같다. 제 2장에서는 BDCS-DM의 설계 및 구현 후 테스트 결과에 대해서 살펴보고, 제 3장에서는 결론을 기술한다.</p>
</sec>
<sec id="sec002">
<title>2. BDCS-DM의 설계 및 구현</title>
<sec id="sec002-1">
<title>2.1 BDCS-DM의 개발 환경</title>
<p>본 논문에서는 기 구축된 MES, SCADA, PLC 등의 시스템에 영향을 주지 않고 저비용으로 신속하게 스마트한 공장으로 재구축할 수 있도록 하기 위한 BDCS-DM를 설계 및 구축하였다.</p>
<table-wrap id="t001">
<label>표 1.</label>
<caption>
<title>BDCS-DM 개발 환경</title>
<p>Table 1. Environment for developing BDCS-DM</p>
</caption>
<table frame="box" rules="all" width="100%">
<tbody>
<tr align="center">
<td>구분</td>
<td>개발 환경</td>
</tr>
<tr>
<td align="center" valign="middle">PLC 모듈 개발</td>
<td><p>ㆍ H/W : 라즈베리파이 3</p>
<p>ㆍ OS : 라즈비안(Raspbian) 리눅스</p>
<p>ㆍ PLC Modbus 서버 : 간이 PLC 서버 구현</p>
<p>ㆍ 서버 간 데이터 이중화 : Zookeeper</p></td>
</tr>
<tr>
<td align="center" valign="middle">빅 데이터 서버 구축</td>
<td><p>ㆍ Kafka Server : 분산 메시징 큐 기반의 데
이터 수집 서버</p>
<p>ㆍ OpenTSDB : 시계열 DBMS 서버</p>
<p>ㆍ Grafana : 데이터 분석/모니터링 시각화 툴</p>
<p>ㆍ Hadoop HDFS : 빅 데이터 파일 시스템</p></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>BDCS-DM은 &#x003C;<xref ref-type="table" rid="t001">표 1</xref>&#x003E;에서 알 수 있듯이, 기존 시스템으로부터 PLC 데이터를 읽어오기 위해 저가의 라즈베리파이 보드에 데이터 수집 장치를 구현하고, 라즈베리파이 보드에 의해 수집된 데이터를 한 곳에 모아 분석하기 위해 분산 메시지 기반의 빅 데이터수집 서버인 Kafka와 하둡, openTSDB를 이용하여 개발 환경을 구축하였다. 데이터 시각화를 위해서는 Grafana를 선택하였기에 Grafana와 가장 호환이 잘되는 openTSDB를 데이터 저장 서버로 선택하였다. 개발 언어로는 Python을 사용하였으며, PLC 데이터의 안정적인 수집을 위해 Apache Zookeeper를 이용하여 데이터를 이중화하도록 구축하였다[<xref ref-type="bibr" rid="B015">15</xref>-<xref ref-type="bibr" rid="B017">17</xref>].</p></sec>
<sec id="sec002-2">
<title>2.2 BDCS-DM의 구현</title>
<sec id="sec002-2-1">
<title>1) PLC Emulator(라즈베리파이 보드)</title>
<p>본 논문에서는 라즈베리파이 보드를 2가지 용도로 사용한다. 하나는 산업 현장의 PLC 시스템 역할을 대신하기 위한 PLC Emulator 개발 용도이고, 다른 하나는 PLC 시스템으로부터 발생한 데이터를 수집시스템 개발 용도이다. 실제 산업 현장에서는 산업장비 간 발생하는 데이터를 PCL Modbus TCP/IP를 이용하여 주고받고 있다. 그러나 본 논문에서는 실제 장비를 연결하여 테스트할 수 없으므로, PLC 시스템과 동일한 기능을 갖도록 PLC Emulator를 라즈베리파이 보드를 이용하여 구현하였다.</p>
<p>PLC Emulator의 PLC DataSet Set Client는 기존산업 현장에서 발생하는 PLC 데이터 대신 sin 함수를 사용하여 임의의 데이터를 발생키고, timestamp를 이용하여 일정한 간격으로 발생 데이터를 PLC Modbus Server에 기록하며, 발생 데이터는 Modbus TCP/IP 프로토콜을 통해 송신되도록 구현하였다.</p>
<p>이때, PLC Modbus Server는 PLC Emulator에 연결된 장치들과 Modbus TCP/IP 프로토콜을 통해 송수신하게 된다. &#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;은 이를 도식화한 것이다.</p>
<fig id="f001" orientation="portrait" position="float">
	<label>그림 1.</label>
	<caption>
		<title>PLC Emulator의 아키텍처</title>
		<p>Figure 1. Architecture of PLC Emulator</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f001.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
</sec>
<sec id="sec002-2-2">
<title>2) PLC Transfer Agent</title>
<p>PLC Transfer Agent의 구성 모듈 중의 하나인 PLC DataSet Get Client는 PLC Emulator의 PLC Modbus Server로부터 전송된 PLC 데이터를 수신 받아 수집된 데이터를 한 저장소에 모아 분석하기 위한 빅 데이터 서버의 Kafka Broker에게 데이터를 전달해야 하는데, 수신 데이터 타입과 openTSDB에서 처리 가능한 데이터 타입이 일치하지 않는 문제가 있다. 그래서 Message Encoding 모듈을 통해 openTSDB에서 처리 가능한 JSON 타입으로 변환한 후 변환된 데이터를 Kafka Producer 모듈로 전달한 후 빅 데이터 서버의 Kafka Broker에게 전송하도록 구현하였다.</p>
<p>또한, PLC DataSet Get Client 모듈은 timestamp를 활용하여, 동일한 에이전트가 동일한 시점에 이전 기록 PLC 데이터와 동일한 PLC 데이터를 빅 데이터 서버에 기록하는 것을 방지하도록 구현하였다.</p>
<p>PLC DataSet Get Client 모듈도 Modbus TCP/IP 프로토콜을 통해 PLC Modbus Server에 설정한 간격과 동일한 Point의 수만큼 데이터를 읽도록 하는 기능을 구현하였다. &#x003C;<xref ref-type="fig" rid="f002">그림 2</xref>&#x003E;는 이를 도식화한 것이다.</p>
<fig id="f002" orientation="portrait" position="float">
	<label>그림 2.</label>
	<caption>
		<title>PLC Transfer Agent의 아키텍처</title>
		<p>Figure 2. Architecture of PLC Transfer Agent</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f002.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>안정적이고 빠른 데이터 수집을 위하여 3개의 라즈베리파이 보드에 각각 PLC Transfer Agent를 구현하고 Apache Zookeeper를 설치한 후, 1개의 마스터(Master: M)와 2개의 슬레이브(Slave: S)로 역할을 분담하였으며, Apache Zookeeper의 NameNode를 이중화함으로써 각 노드의 모니터링을 통한 안정적인 데이터 수집이 가능하도록 구축하였다.</p>
</sec>
<sec id="sec002-2-3">
<title>3) 데이터의 이중화</title>
<p>데이터의 안정적인 수집을 위하여 여러 대의 서버가 동시에 데이터를 분산 처리하여 대규모 데이터 처리에 있어 빠른 속도를 보장하는 하둡 분산 파일시스템(HDFS)의 메타 정보를 메모리에 유지하고 모든 HDFS 클라이언트의 트랜잭션을 EditLog라는 파일에 수록하는 NameNode를 실제 기능을 수행하는 Active NameNode와 Active NameNode 장애 발생 시Active NameNode의 역할을 수행하는 Standby NameNode로 이중화하여 구현하였다.</p>
<fig id="f003" orientation="portrait" position="float">
	<label>그림 3.</label>
	<caption>
		<title>데이터 이중화를 위한 빅 데이터 서버 아키텍처</title>
		<p>Figure 3. Big Data Server Architecture for Data Mirroring</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f003.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>&#x003C;<xref ref-type="bibr" rid="B003">그림 3</xref>&#x003E;에서 알 수 있듯이, Active NameNode에 장애가 발생했을 때 Active NameNode에 존재하는 정보를 어떻게 Standby NameNode가 가져오고, Standby NameNode가 Active NameNode의 장애를 어떻게 찾아내고 Standby NameNode가 Active NameNode로 변경되었을 때 이 두 서버가 Active NameNode인 생태가 발생하는 것을 어떻게 방지할 것인가가 NameNode의 이중화를 구성하는데 가장 골치 아픈 문제이다. 이와 같은 문제를 해결하기 위하여 edits 정보(파일 시스템의 journaling 정보)를 저장하고 공유하는 기능을 수행하는 JournamNode를 이용하여 저장하도록 하는 한편, Failover 처리는 Apache Zookeeper를 이용한 자동장애 인지 처리 방법을 사용하였다.</p>
<p>Failover Controller는 Apache Zookeeper에게 변경된 NameNode의 상태 정보를 통지하고 NameNode의 상태를 모니터링 하여 장애 발생 시 이를 감지하고 Standby NameNode를 Active로 전환 및 복구하는 역할을 한다. 각 NodeName은 JournalNode의 uorum을 통하여 NodeName의 상태를 공유하고 Standby NameNode는 1초를 주기로 JournalNode로부터 이전에 받은 EditLog의 정보를 받아 메모리의 파일 시스템 구조에 반영한다.</p>
</sec>
<sec id="sec002-2-4">
<title>4) PLC 데이터 수집 및 시각화</title>
<fig id="f004" orientation="portrait" position="float">
	<label>그림 4.</label>
	<caption>
		<title>데이터 수집 및 시각화를 위한 아키텍처</title>
		<p>Figure 4. Architecture for Collecting and Visualizing data</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f004.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>&#x003C;<xref ref-type="bibr" rid="B004">그림 4</xref>&#x003E;에서 보여주는 것과 같이, Kafka 서버로 전달된 PLC 데이터는 Kafka의 메시지 큐에 저장된다. Kafka의 메시지 큐에 저장된 상태로는 시각화 하기 어려움이 있으므로, Kafka Consumer API를 이용하여 Kafka의 메시지 큐에 저장된 데이터를 읽어서 시계열 DB인 OpenTSDB에 저장한다. 시계열 데이터베이스의 스토리지 계층에서 데이터를 로드하고 액세스하기 위한 여러 가지 협력 구성 요소를 가지고 있는 OpenTSDB는 HBase를 사용하며 타임 시리즈 데이터를 가져와서 저장하며, HBase 스키마는 저장 공간을 줄이기 위해 비슷한 타임 시리즈를 빠르게 집약하는 것에 대해 최적화되어 있다.</p>
<p>OpenTSDB는 REST 인터페이스를 사용하여 JSON 형식의 집계 데이터를 읽고 자체 시각화를 생성하므로, 다양한 back-end 데이터 소스를 기반으로 시계열 데이터와 매트릭스 정보를 보여주는 Grafana 대시보드는 OpenTSDB로부터 데이터를 가져다 바로 시각화하여 보여줄 수 있다. 그래서 본 연구에서는 시각화를 위해서 OpenTSDB와 Grafana를 함께 연동하여 구현하였다. Grafana 대시보드로 Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB, Cloudwatch 등을 데이터 소스로 이용할 수 있다.</p>
<p>Kafka는 PLC Transfer Agent로부터 전달된 JSON 형태의 PLC 데이터를 고속 및 안정적 데이터 전달을 위하여 2개의 분산 서버로 구축하였으며, 클러스터의 개수가 너무 많으면 문제가 발생했을 때 데이터를 복구하는데 많은 시간이 걸릴 수 있으므로, 일단은 3개의 클러스터를 만들고, 하나의 클러스터는 1개의 Topic, 4개의 Partitions, 2개의 Replicas 로 구성된 “Single node-Multiple Broker Cluster” 유형으로 설정하였다. 적정한 클러스터 환경은 실제 생산 공정 라인에 연결하여 테스트하면서 성능에 문제가 생겼을 때마다 개수를 조정하면서 가장 적정한 수집환경을 확정지을 예정이다.</p>
</sec>
</sec>
<sec id="sec002-3">
<title>2.3 성능 테스트 결과</title>
<p>본 시스템의 성능 분석을 위하여 네트워크 환경이 유선일 때와 무선일 때를 구분하여 테스트하였고, 라즈베리파이 보드에 구현한 PLC Emulator와 Kafka 서버에 구현해 놓은 고속의 PLC Emulator의 성능 비교를 위하여 동일한 환경에서 PLC DataSet Get/Get 주기 및 PLC Data Agent와 PLC Data Point 수를 조정하면서 테스트를 진행하였다.</p>
</sec>
<sec id="sec002-3-1">
<title>1) 단일 노드 환경에서의 성능 테스트 결과</title>
<p>1 ms당 10개의 데이터를 전송 성능을 단일 노드이면서 Ethernet 환경에서 먼저 테스트한 결과, 어떤 조건에서도 데이터 손실이 발생하지 않았다. 그래서 WiFi 환경에서의 최적의 전송환경을 알아보기 위하여 다음과 같은 테스트를 진행하였다. 먼저, WiFi 환경에서 PLC DataSet Set 주기가 0.1초인 조건에 가장 적정한 PLC DataSet Get 주기를 알아보기 위한 테스트와 WiFi 환경에서는 Kafka서버에 설치한 고속의 PLC Emulator와 라즈베리파이 보드에 설치한 저속의 PLC Emulator 간의 데이터 전송 성능 비교를 위하여 각 테스트 환경에 따른 데이터 손실률은 동일한 구간에 대한 데이터 손실 정도를 비교하였다.</p>
<table-wrap id="t002">
<label>표 2.</label>
<caption>
<title>WiFi, PLC DataSet Set(0.1초) 주기에서 테스트</title>
<p>Table 2. Tests with WiFi, a DataSet Set:0.1 sec</p>
</caption>
<table frame="box" rules="all" width="100%">
<tbody>
<tr style="background: lightgrey" align="center">
<td>비교 항목</td>
<td colspan="4">테스트 환경</td>
</tr>
<tr align="center" style="background: lightgrey">
<td>PLC Emulator</td>
<td colspan="2">Rasberry Pi</td>
<td colspan="2">Kafka 서버</td>
</tr>
<tr align="center">
<td style="background: lightgrey">DataSet Get</td>
<td>0.005초</td>
<td>0.05초</td>
<td>0.005초</td>
<td>0.05초</td>
</tr>
<tr align="center">
<td style="background: lightgrey">PLC Data Agent</td>
<td>2대</td>
<td>2대</td>
<td>2대</td>
<td>2대</td>
</tr>
<tr align="center">
<td style="background: lightgrey">PLC Data Point</td>
<td>5point</td>
<td>5point</td>
<td>5point</td>
<td>5point</td>
</tr>
<tr align="center">
<td style="background: lightgrey">최소 손실구간</td>
<td>0.3초</td>
<td>0.1초</td>
<td>0.3초</td>
<td>0.1초</td>
</tr>
<tr align="center">
<td style="background: lightgrey">최대 손실구간</td>
<td>0.9초</td>
<td>0.9초</td>
<td>0.7초</td>
<td>0.7초</td>
</tr>
<tr align="center">
<td style="background: lightgrey">전송 데이터</td>
<td>모두손실</td>
<td>부분손실</td>
<td>부분손실</td>
<td>부분손실</td>
</tr>
<tr align="center">
<td style="background: lightgrey">손실 빈도수</td>
<td>19개</td>
<td>7개</td>
<td>11개</td>
<td>6개</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>&#x003C;<xref ref-type="table" rid="t002">표 2</xref>&#x003E;과 &#x003C;<xref ref-type="fig" rid="f005">그림 5</xref>&#x003E;에서 알 수 있듯이, WiFi 환경이라는 특수한 환경 때문인지 라즈베리파이 보드에 설치된 PLC Emulator의 경우 Kafka 서버에 설치된 고속의 PLC Emulator에 비해 데이터 손실 빈도수가 높게 나타났고, DataSet Get 주기를 빠르게 할수록 두 PLC Emulator 간의 데이터 손실 빈도수는 확연한 차이를 보였다.</p>
<p>PLC DataSet Set 주기가 01초이면서 PLC DataSet Get 주기를 0.005초, 0.05초로 했을 때로 구분하여 테스트한 결과, PLC DataSet Get 주기를 0.005초로 했을 때보다 0.05초로 했을 때가 라즈베리파이 보드와 Kafka 서버 모두 데이터 손실 빈도수가 감소하였으며, 라즈베리파이 보드의 경우는 최소 손실 구간이 좁혀졌고 Kafka 서버의 경우는 최대 손실 구간이 좁혀진 것을 확인할 수 있었다. 따라서 PLC DataSet Get 주기는 0.005초보다는 0.05초가 적정하다는 결론을 얻을 수 있었다.</p>
<fig id="f005" orientation="portrait" position="float">
	<label>그림 5.</label>
	<caption>
		<title>데이터의 손실 빈도수 비교</title>
		<p>Figure 5. Comparison of data loss frequencies</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f005.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>1차 테스트에서 PLC DataSet Get 주기가 0.1초 이면서 PLC DataSet Get 주기만 0.05초인 환경에서의 데이터 손실 빈도수 및 데이터 최대, 최소 손실구간이 더 좁은 것으로 나타났으므로 2차 테스트는 동일한 환경에서 적정한 PLC Data Agent 수와 PLC Data point 수를 알아보기 위한 테스트를 진행 하였다. 테스트는 PLC DataSet Get 주기가 0.1초이면서 PLC DataSet Get 주기만 0.05초인 환경에서 PLC Data Agent의 개수를 3대로 늘리고, 각 PLC Data Agent 당 할당 PLC Data Point의 개수를 3개로 줄여서 테스트해 본 결과 데이터 손실 빈도수가 준 것을 확인 할 수 있었다. 더 중요한 것은 Kafka 서버와 라즈베리파이 보드 간의 데이터 손실 빈도수의 차이가 없으며, 최대 손실 구간이 줄었다는 것이다. &#x003C;<xref ref-type="table" rid="t003">표 3</xref>&#x003E;은 위의 테스트 결과를 도표로 나타낸 것이다.</p>
<table-wrap id="t003">
<label>표 3.</label>
<caption>
<title>PLC DataSet Set(0.1초), Get( 0.05초)주기에서 테스트</title>
<p>Table 3. Tests with a DataSet Set:0.1, Get:0.05 sec</p>
</caption>
<table frame="box" rules="all" width="100%">
<tbody>
<tr style="background: lightgrey" align="center">
<td>비교 항목</td>
<td colspan="4">테스트 환경</td>
</tr>
<tr align="center" style="background: lightgrey">
<td>PLC Data Agent</td>
<td colspan="2">2대</td>
<td colspan="2">3대</td>
</tr>
<tr align="center">
<td style="background: lightgrey">PLC Emulator</td>
<td>Rasberry Pi</td>
<td>Kafka 서버</td>
<td>Rasberry Pi</td>
<td>Kafka 서버</td>
</tr>
<tr align="center">
<td style="background: lightgrey">PLC Data Point</td>
<td>5point</td>
<td>5point</td>
<td>3point</td>
<td>3point</td>
</tr>
<tr align="center">
<td style="background: lightgrey">최소 손실구간</td>
<td>0.1초</td>
<td>0.1초</td>
<td>0.1초</td>
<td>0.1초</td>
</tr>
<tr align="center">
<td style="background: lightgrey">최대 손실구간</td>
<td>0.9초</td>
<td>0.7초</td>
<td>0.7초</td>
<td>0.5초</td>
</tr>
<tr align="center">
<td style="background: lightgrey">전송데이 터</td>
<td>부분손실</td>
<td>부분손실</td>
<td>부분손실</td>
<td>부분손실</td>
</tr>
<tr align="center">
<td style="background: lightgrey">손실 빈도수</td>
<td>7개</td>
<td>6개</td>
<td>5개</td>
<td>5개</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>위 테스트를 통하여, WiFi 환경에서는 Rasberry Pi에 비해 성능이 좋은 Kafka 서버에 설치된 PLC Emulator의 수집 성능이 더 좋으며, PLC DataSet Set 주기가 0.1초인 조건에서의 PLC DataSet Get 주기는 0.005초보다는 0.05초가 적정하며, 본 연구의 목적은 라즈베리파이 보드를 이용한 데이터 수집 시스템을 구현하는 것이므로 Kafka 서버와 라즈베리파이 보드의 데이터 손실 빈도수의 차이가 없고 최대 손실 수간이 줄어든 3대의 PLC Data Agent, 3개의 Data Point 환경이 적정하다는 결론을 얻을 수 있었다.</p>
</sec>
<sec id="sec002-3-2">
<title>2) 데이터 이중화 환경에서의 테스트 결과</title>
<p>WiFi 환경에서 테스트한 결과, 적정한 PLC DataSet Set/Get 주기와 PLC Data Agent의 개수는 알 수 있었으나, 미비하나마 데이터 손실이 발생하는 단점을 보완하고자 Apache ZooKeeper를 이용한 데이터 이중화 수집 환경을 구축한 후 테스트를 시행하였다. 테스트 조건은 WiFi, PLC DataSet Set 주기는 0.1초, PLC DataSet Get 주기는 0.05초인 환경에서 PLC Emulator 설치 환경 및 PLC DataSet Set/Get 주기와 PLC Data Agent의 개수를 알아보기 위한 테스트를 시행하였다.</p>
<table-wrap id="t004">
<label>표 4.</label>
<caption>
<title>데이터 이중화 환경에서의 테스트</title>
<p>Table 4. Testing in Data Mirroring Environments</p>
</caption>
<table frame="box" rules="all" width="100%">
<tbody>
<tr style="background: lightgrey" align="center">
<td>비교항목</td>
<td colspan="4">테스트 환경</td>
</tr>
<tr align="center" style="background: lightgrey">
<td>PLC Data Agent</td>
<td colspan="2">2대</td>
<td colspan="2">3대</td>
</tr>
<tr align="center">
<td style="background: lightgrey">PLC Emulator</td>
<td>Rasberry Pi</td>
<td>Kafka 서버</td>
<td>Rasberry Pi</td>
<td>Kafka 서버</td>
</tr>
<tr align="center">
<td style="background: lightgrey">PLC Data Point</td>
<td>5point</td>
<td>5point</td>
<td>3point</td>
<td>3point</td>
</tr>
<tr align="center">
<td style="background: lightgrey">손실 구간</td>
<td>없음</td>
<td>없음</td>
<td>없음</td>
<td>없음</td>
</tr>
<tr align="center">
<td style="background: lightgrey">전송데이 터</td>
<td>없음</td>
<td>없음</td>
<td>없음</td>
<td>없음</td>
</tr>
<tr align="center">
<td style="background: lightgrey">손실 빈도수</td>
<td>0개</td>
<td>0개</td>
<td>0개</td>
<td>0개</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>그 결과, &#x003C;<xref ref-type="table" rid="t004">표 4</xref>&#x003E;에서 알 수 있듯이 PLC Emulator가 설치된 환경 및 PLC Data Agent의 수와 PLC Data Point의 수의 변화에도 데이터 수집율의 영향을 받지 않는 것을 확인 할 수 있었다. 마지막으로 WiFi 환경에서 PLC Emulator 설치 환경과 PLC Data Agent당 할당된 Data point수에 따라 데이터 손실률의 차이를 보였던, PLC DataSet Set 주기가 0.1초, PLC DataSet Get 주기는 0.005초인 환경에서 PLC Data Point 개수도 10개로 늘려서 테스트해 보았으나 데이터 손실이 전혀 없는 것으로 나타났다.</p>
<p>위와 같이 다양한 조건을 주어 테스트한 결과, PLC 데이터 수집을 위한 라즈베리파이 보드를 추가함으로써 데이터 수집 성능 향상을 꾀하기 위해서는 Ethernet 환경이 적정하고, 각 PLC Transfer Agent 별로 데이터 수집 포인트를 분할 수집하는 것이 가능하며, PLC Transfer Agent 추가 구성 시데이터 수집 성능이 향상된다는 것을 알 수 있었다.</p>
<p>또한, 1ms 주기로 단일 PLC Data Point를 전송하게 되면 실시간 데이터 수집 시 네트워크오버헤드 및 전송지연으로 인해 PLC 데이터 수집 성능을 보장하기가 어려우므로, 10ms 주기로 10개의 PLC Data Point를 묶어서 전송하는 것이 효과적이라는 결론을 얻었으며, 대부분의 EMS 기 구축 환경이 Ethernet 환경으로 되어 있다는 것을 감안했을 때 충분히 실효성이 있다고 할 것이다.</p>
<fig id="f006" orientation="portrait" position="float">
	<label>그림 6.</label>
	<caption>
		<title>WiFi 환경에서의 전송 데이터 시각화</title>
		<p>Figure 6. Visualization of transmission data in WiFi</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f006.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>&#x003C;<xref ref-type="fig" rid="f006">그림 6</xref>&#x003E;에서 알 수 있듯이, WiFi 및 Ethernet 환경에서의 데이터 전송의 신뢰성 향상을 위하여 3대의 라즈베리파이 보드에 데이터를 분산 전송하였으며, Apache Zookeeper를 도입하여 이중화하고 빠른 데이터 전송과 장애 발생 시 데이터 유실 없이 over/fail back이 가능하도록 구축한 결과, WiFi 환경에서도 데이터 손실 없이 전송되는 것을 확인할 수 있었다.</p>
</sec>
</sec>
<sec id="sec003" sec-type="Conclusions">
<title>3. 결 론</title>
<p>인더스트리 4.0은 전통 제조업에 새로운 ICT를 결합, 적용해 모든 생산 과정에서 자율 최적화를 실현하겠다는 전략으로 다양한 상황 변경에서도 낭비나 시행착오가 없는 효율적인 ‘제조 최적화’의 달성하는 스마트 팩토리를 목표로 한다. 본 논문에서는 스마트 팩토리의 환경에서 발생하는 데이터 수집의 신뢰성 향상을 위해 라즈베리파이 보드(H/W) 와 분산 메시징 기반의 Kafka(S/W)를 적용한 Hadoop PLC 데이터 수집 장치 구현하고 에뮬레이터를 통하여 성능을 검증하였다.</p>
<p>그 결과, 라즈베리파이 보드 추가를 통하여 데이터 수집 성능 향상을 꾀할 수 있는 조건으로는 3대의 PLC Transfer Agent를 라즈베리파이 보드로 구현 하는 것이 적정하고, 1ms 주기의 PLC 데이터 수집 성능을 보장하기 위해서는 단일 Point 의 1 ms 주기의 실시간 데이터 수집은 네트워크오버헤드 및 전송 지연으로 인해 불가능하므로, Ethernet 연결 구성에서 10ms 주기 10개 Point 묶어서 전송하는 것이 효과적이라는 것을 알 수 있었다. 또한, 산업현장에서 장비의 안전성과 신뢰성은 매우 중요하므로 PLC 데이터 수집 장치를 복수 개로 배치하고 Apache Zookeeper를 도입하여 이중화를 구현함으로써 WiFi 및 외부 네트워크에서는 우려되는 성능 저하로 인한 데이터의 누수 문제를 해결할 수 있었다.</p>
<p>따라서 BDCS-DM은 소규모 공장의 PLC 설비 데이터 수집 시스템 구축에 있어 비용과 시간 절감 효과뿐만 아니라 설비 이상 또는 문제 감지 예측 분석을 위한 데이터 수집용으로 유용하게 활용 가능하리라 본다. 또한, 스마트 팩토리뿐만 아니라 빅 데이터를 사용하는 모든 분야에서 응용 가능할 것으로 판단된다. 향후에는 실제 생산 공정에 적용해 보고, 본 시스템이 생산성 향상과 품질 개선에 미치는 영향을 검증해 볼 계획이다.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<!-- [1] B. Behard, S. Yang, H. A. Kao, and J. Lee, Cyber-physical systems architecture for self-aware machines in industry 4.0 environment, International Federation of Automatic Control, Vol. 48, No. 3, pp. 1622-1627, 2015.-->
<ref id="B001">
<label>[1]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Behard</surname><given-names>B.</given-names></name>
<name><surname>Yang</surname><given-names>S.</given-names></name>
<name><surname>Kao</surname><given-names>H. A.</given-names></name>
<name><surname>Lee</surname><given-names>J.</given-names></name>
</person-group>
<year>2015</year>
<article-title>Cyber-physical systems architecture for self-aware machines in industry 4.0 environment</article-title>
<source>International Federation of Automatic Control</source>
<volume>48</volume><issue>3</issue>
<fpage>1622</fpage><lpage>1627</lpage>
<pub-id pub-id-type="doi">10.1016/j.ifacol.2015.06.318</pub-id>
</element-citation>
</ref>
<!-- [2] The based system of the fourth industrial revolution, CPS, Software Policy Research Institute, MONTHLY SOFTWARE ORIENTED SOCIETY, pp. 18-23, Dec. 2016.-->
<ref id="B002">
<label>[2]</label>
<element-citation publication-type="journal">
<year>2016</year>
<article-title>The based system of the fourth industrial revolution, CPS</article-title>
<source>MONTHLY SOFTWARE ORIENTED SOCIETY</source>
<publisher-name>Software Policy Research Institute</publisher-name>
<volume>Dec.</volume>
<fpage>18</fpage><lpage>23</lpage>
</element-citation>
</ref>
<!-- [3] J. Lee, C. Jin, and B. Bagheri, Cyber physical systems for predictive production systems, Production Engineering, Vol. 11, No. 2, pp. 155-165, Apr. 2017.-->
<ref id="B003">
<label>[3]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Lee</surname><given-names>J.</given-names></name>
<name><surname>Jin</surname><given-names>C.</given-names></name>
<name><surname>Bagheri</surname><given-names>B.</given-names></name>
</person-group>
<year>2017</year>
<month>Apr.</month>
<article-title>Cyber physical systems for predictive production systems</article-title>
<source>Production Engineering</source>
<volume>11</volume><issue>2</issue>
<fpage>155</fpage><lpage>165</lpage>
<pub-id pub-id-type="doi">10.1007/s11740-017-0729-4</pub-id>
</element-citation>
</ref>
<!-- [4] H. J. Shin, and C. H. Oh, Study on CPS implementation for smart manufacturing, In Proceedings of the 2016 Asia Workshop on IT Convergence, Feb. 2017.-->
<ref id="B004">
<label>[4]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>Shin</surname><given-names>H. J.</given-names></name>
<name><surname>Oh</surname><given-names>C. H.</given-names></name>
</person-group>
<year>2017</year>
<month>Feb.</month>
<article-title>Study on CPS implementation for smart manufacturing</article-title>
<source>Proceedings of the 2016 Asia Workshop on IT Convergence</source>
</element-citation>
</ref>
<!-- [5] M. S. D. Brito, S. Hoque, R. Steinke, A. Willner, and T. Magedanz, Application of the fog computing paradigm to smart factories and cyber-physical systems, Transactions on Emerging Telecommunications Technologies, pp. 1-14, May 2017.-->
<ref id="B005">
<label>[5]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Brito</surname><given-names>M. S. D.</given-names></name>
<name><surname>Hoque</surname><given-names>S.</given-names></name>
<name><surname>Steinke</surname><given-names>R.</given-names></name>
<name><surname>Willner</surname><given-names>A.</given-names></name>
<name><surname>Magedanz</surname><given-names>T.</given-names></name>
</person-group>
<year>2017</year>
<article-title>Application of the fog computing paradigm to smart factories and cyber-physical systems</article-title>
<source>Transactions on Emerging Telecommunications Technologies</source>
<volume>May</volume>
<fpage>1</fpage><lpage>14</lpage>
<pub-id pub-id-type="doi">10.1002/ett.3184</pub-id>
</element-citation>
</ref>
<!-- [6] H. J. Shin, K. W. Cho, and C. H. Oh, SVM-based dynamic reconfiguration CPS for manufacturing system in industry 4.0, Wireless Communications and Mobile Computing, Vol. 2018, p. 13, Jan. 2018.-->
<ref id="B006">
<label>[6]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Shin</surname><given-names>H. J.</given-names></name>
<name><surname>Cho</surname><given-names>K. W.</given-names></name>
<name><surname>Oh</surname><given-names>C. H.</given-names></name>
</person-group>
<year>2018</year>
<month>Jan.</month>
<article-title>SVM-based dynamic reconfiguration CPS for manufacturing system in industry 4.0</article-title>
<source>Wireless Communications and Mobile Computing</source>
<volume>2018</volume>
<fpage>13</fpage>
<pub-id pub-id-type="doi">10.1155/2018/5795037</pub-id>
</element-citation>
</ref>
<!-- [7] S. Kim, Y. Kim, and W. Jim, The design of method for efficient processing of small Files in the distributed system based on Hadoop framework, J. of the Korea Institute of Electronic Communication Sciences, Vol. 10, No. 10, pp. 1115-1121, Oct. 2015.-->
<ref id="B007">
<label>[7]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Kim</surname><given-names>S.</given-names></name>
<name><surname>Kim</surname><given-names>Y.</given-names></name>
<name><surname>Jim</surname><given-names>W.</given-names></name>
</person-group>
<year>2015</year>
<month>Oct.</month>
<article-title>The design of method for efficient processing of small Files in the distributed system based on Hadoop framework</article-title>
<source> J. of the Korea Institute of Electronic Communication Sciences</source>
<volume>10</volume><issue>10</issue>
<fpage>1115</fpage><lpage>1121</lpage>
<pub-id pub-id-type="doi">10.13067/jkiecs.2015.10.10.1115</pub-id>
</element-citation>
</ref>
<!-- [8] H. Li, An approach to improve flexible manufacturing systems with machine learning algorithms, IECON 2016 – 42nd Annual Conference of the IEEE Industrial Electronics Society, pp. 54-59, Oct. 2016.-->
<ref id="B008">
<label>[8]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>Li</surname><given-names>H.</given-names></name>
</person-group>
<year>2016</year>
<month>Oct.</month>
<article-title>An approach to improve flexible manufacturing systems with machine learning algorithms</article-title>
<conf-name>IECON 2016 – 42nd Annual Conference of the IEEE Industrial Electronics Society</conf-name>
<fpage>54</fpage><lpage>59</lpage>
<pub-id pub-id-type="doi">10.1109/iecon.2016.7793838</pub-id>
</element-citation>
</ref>
<!-- [9] J. Jang, and E. J. Kim, Survey on industrial wireless network technologies for smart factory, Journal of Platform Technology, Vol. 4, No. 1, pp. 3-10, Mar. 2016.-->
<ref id="B009">
<label>[9]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Jang</surname><given-names>J.</given-names></name>
<name><surname>Kim</surname><given-names>E. J.</given-names></name>
</person-group>
<year>2016</year>
<month>Mar.</month>
<article-title>Survey on industrial wireless network technologies for smart factory</article-title>
<source>Journal of Platform Technology</source>
<volume>4</volume><issue>1</issue>
<fpage>3</fpage><lpage>10</lpage>
</element-citation>
</ref>
<!-- [10] J. B. Park, A. Lee, and T. Kim, Implementation of high speed big data processing system using in memory data grid in semiconductor process, The Journal of The Korea Institute of Intelligent Transportation Systems, Vol. 15, No. 5, pp. 125-133, Oct. 2016.-->
<ref id="B010">
<label>[10]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Park</surname><given-names>J. B.</given-names></name>
<name><surname>Lee</surname><given-names>A.</given-names></name>
<name><surname>Kim</surname><given-names>T.</given-names></name>
</person-group>
<year>2016</year>
<month>Oct.</month>
<article-title>Implementation of high speed big data processing system using in memory data grid in semiconductor process</article-title>
<source>The Journal of The Korea Institute of Intelligent Transportation Systems</source>
<volume>15</volume><issue>5</issue>
<fpage>125</fpage><lpage>133</lpage>
<pub-id pub-id-type="doi">10.12815/kits.2016.15.5.125</pub-id>
</element-citation>
</ref>
<!-- [11] H. J. Shin, M. H. Jeon, and C. H. Oh, Development of smart work-based production management system to improve work efficiency of workers in smart factory, Far East Journal of Electronics and Communication, Vol. 18, No. 1, pp. 101-111, Jan. 2018.-->
<ref id="B011">
<label>[11]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Shin</surname><given-names>H. J.</given-names></name>
<name><surname>Jeon</surname><given-names>M. H.</given-names></name>
<name><surname>Oh</surname><given-names>C. H.</given-names></name>
</person-group>
<year>2018</year>
<month>Jan.</month>
<article-title>Development of smart work-based production management system to improve work efficiency of workers in smart factory</article-title>
<source>Far East Journal of Electronics and Communication</source>
<volume>18</volume><issue>1</issue>
<fpage>101</fpage><lpage>111</lpage>
<pub-id pub-id-type="doi">10.17654/ec018010101</pub-id>
</element-citation>
</ref>
<!-- [12] MTConnect Institute, http://www.mtconnect.org/standard-documents/, Jan. 2017.-->
<ref id="B012">
<label>[12]</label>
<element-citation publication-type="webpage" publication-format="web">
<year>2017</year>
<month>Jan</month>
<source>MTConnect Institute, <uri>http://www.mtconnect.org/standard-documents/</uri></source>
</element-citation>
</ref>
<!-- [13] OPC Foundation, https://opcfoundation.org/developer-tools/certification-specifications, Feb. 2017.-->
<ref id="B013">
<label>[13]</label>
<element-citation publication-type="webpage" publication-format="web">
<year>2017</year>
<month>Feb.</month>
<source>OPC Foundation, <uri>https://opcfoundation.org/developer-tools/certification-specifications</uri></source>
</element-citation>
</ref>
<!-- [14] The Modbus Organization, http://www.modbus.org/specs.php, Feb. 2017.-->
<ref id="B014">
<label>[14]</label>
<element-citation publication-type="webpage" publication-format="web">
<year>2017</year>
<month>Feb.</month>
<source>The Modbus Organization, <uri>http://www.modbus.org/specs.php</uri></source>
</element-citation>
</ref>
<!-- [15] Apache Kafka, https://kafka.apache.org/, Oct. 2017.-->
<ref id="B015">
<label>[15]</label>
<element-citation publication-type="webpage" publication-format="web">
<year>2017</year>
<month>Oct.</month>
<source>Apache Kafka, <uri>https://kafka.apache.org/</uri></source>
</element-citation>
</ref>
<!-- [16] Apache Hadoop, https://hadoop.apache.org/, Oct. 2017.-->
<ref id="B016">
<label>[16]</label>
<element-citation publication-type="webpage" publication-format="web">
<year>2017</year>
<month>Oct.</month>
<source>Apache Hadoop, <uri>https://hadoop.apache.org/</uri></source>
</element-citation>
</ref>
<!-- [17] Apache ZooKeeper, https://zookeeper.apache.org/, Oct. 2017.-->
<ref id="B017">
<label>[17]</label>
<element-citation publication-type="webpage" publication-format="web">
<year>2017</year>
<month>Oct.</month>
<source>Apache ZooKeeper, <uri>https://zookeeper.apache.org/</uri></source>
</element-citation>
</ref>
</ref-list>
<bio>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002477660&amp;imageName=jkits_2019_14_03_257_f007.jpg"></graphic><bold>Sun-Young Heo</bold> received B.S.(1995) from Daejeon University, the M.S.(2005) and the Ph.D.(2012) in Department of Electrical and Electronic Engineering at Korea University of Technology and Education. She is a research professor at Online Lifelong Education Institute, Korea University of Technology and Education. Her current research interests include Intelligent LMS, Recommendation system, Big Data, and Motivation.</p>
<p><italic>E-mail address</italic>: <email>hsysj119@koreatech.ac.kr</email></p>
</bio>
</back>
</article>
