235 0

Socket.io 인증 기반의 실시간 업무 모니터링 시스템 설계 및 구현

Title
Socket.io 인증 기반의 실시간 업무 모니터링 시스템 설계 및 구현
Other Titles
Design and Implementation of Real-Time Task Monitoring System-based on Socket.io Authentication
Author
박창규
Advisor(s)
조인휘
Issue Date
2016-02
Publisher
한양대학교
Degree
Master
Abstract
현재 공공기관 및 기업에서는 대부분의 업무를 전산시스템을 사용하여 업무를 처리하고 있다. 시스템 및 사용자는 증가하고 있으며, 특히 데이터는 기하급수적으로 증가하고 있다. 그리고 시스템을 접근할 수 있는 디바이스가 늘어남에 따라 민원접수 및 업무가 증가하고 있고, 이에 따라 신속한 처리가 더욱 더 필요하다. 본 논문에서는 실시간 업무 모니터링 시스템을 위해 Node.js 기반의 Socket.io를 이용한 시스템 설계 및 구현을 제안한다. Node.js는 비동기 I/O와 Single-thread 기반으로 동작하기 때문에 사용자 요청을 병렬로 처리할 수 있어 동시 요청 처리에 용이하다. 또한, Node.js와 Socket.io 그리고 MongoDB는 JavaScript와 JSON 데이터 포맷을 사용하기 때문에 개발이 용이하다. Socket.io는 WebSocket와 달리 모든 브라우저의 실시간 양방향 통신을 지원하며 더 다양한 기능을 제공하기에 Node.js 기반의 Socket.io를 선택하였다. 본 논문은 Socket 통신의 보안을 강화하기 위하여 Socket.io Handshake 로직을 개선하여 인증하는 방안을 제시하며, Session 및 Socket 정보를 통해 데이터 및 메시지 전송 시에도 인증여부를 체크 하여 보안을 강화시켰다. 또한 Server의 성능을 개선하기 위해 Clustering 기법을 사용하여 CPU 자원을 효율적으로 사용했으며, 성능분석 결과 동시접속자수가 증가함에 따라 평균 응답속도가 더욱 개선되었다. 동시접속자수가 20인 경우 약 29%, 50인 경우 약 55%의 효율을 보였으며, Master Process의 스케줄링 정책을 Round Robin을 적용한 결과, O/S에 위임한 방식보다 평균 25% 정도의 성능 향상을 보였다. Clustering 적용 시 Worker Process 간에 통신이 되지 않는 문제는 Master Process를 이용한 IPC 기반의 Publish and Subscribe Model을 적용하여 해결하였다. CPU 연산이 빈번한 경우, IPC 기반 Clustering 방식은 CPU 연산을 Master Process에게 위임할 수 있기 때문에 별도의 Store를 사용하는 방식에 비해서 약 30% 정도의 성능 향상을 보여주었다.|In this paper, I propose a design and implementation using Socket.io based on Node.js for real-time task monitoring system. Node.js provides scalability for real-time web applications, by operating in parallel using a Single-thread based on the non-blocking I / O. In addition, Node.js, MongoDB and Socket.io are easy to develop because they use JavaScript language and JSON. Socket.io supports full-duplex communication and provides various functions. In this paper, I propose authentication in Socket.io handshake step in order to enhance the security of Socket communications. In addition, when message is sent, the security can enhance using session information such as SessionID, socket.id and IP Address. I adapted cluster module for scaling up to enhance server performance. The results of the performance analysis, as the number of concurrent user increases, it is shown that the performance was further improved. Also, it showed the high performance of 25% on average during the Round Robin allocation scheme. When the cluster module is applied, there is a problem that all worker process are not able to communicate each other. This problem was resolved by applying the Publish and Subscribe Model based IPC or Redis. If the CPU operation is frequent, cluster module based on IPC showed a higher performance compared with the method using Redis store because it is possible to delegate the operation of the CPU Process Master.; In this paper, I propose a design and implementation using Socket.io based on Node.js for real-time task monitoring system. Node.js provides scalability for real-time web applications, by operating in parallel using a Single-thread based on the non-blocking I / O. In addition, Node.js, MongoDB and Socket.io are easy to develop because they use JavaScript language and JSON. Socket.io supports full-duplex communication and provides various functions. In this paper, I propose authentication in Socket.io handshake step in order to enhance the security of Socket communications. In addition, when message is sent, the security can enhance using session information such as SessionID, socket.id and IP Address. I adapted cluster module for scaling up to enhance server performance. The results of the performance analysis, as the number of concurrent user increases, it is shown that the performance was further improved. Also, it showed the high performance of 25% on average during the Round Robin allocation scheme. When the cluster module is applied, there is a problem that all worker process are not able to communicate each other. This problem was resolved by applying the Publish and Subscribe Model based IPC or Redis. If the CPU operation is frequent, cluster module based on IPC showed a higher performance compared with the method using Redis store because it is possible to delegate the operation of the CPU Process Master.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/127326http://hanyang.dcollection.net/common/orgView/200000428170
Appears in Collections:
GRADUATE SCHOOL OF ENGINEERING[S](공학대학원) > ELECTRONIC & ELECTRICAL ENGINEERING(전기 및 전자공학과) > Theses(Master)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE