IT 지식/OPCUA

OPCUA 통신 쉽게 알기 - 4편 Pub/Sub의 개념익히기 (Monitoring)

셔니아빠. 2020. 7. 14. 15:44

 이번 시간에는 Pub/Sub에 대해서 알아보겠습니다. 스마트 공장의 가장 기초적인 단계는 실시간 현재 데이터를 확인하는 것이겠지요. 이러한 실시간 데이터를 받아보기 위한 OPCUA 프로토콜의 핵심은 바로 Pub/Sub 입니다.

 

8. Pub/Sub 이란 무엇인가.

 

 컴퓨터 용어는 사실 아무것도 아닌데 단어만 어려운 경우가 많습니다. Pub/Sub도 마찬가지에요. Publish / Subscription 입니다. 발행과 구독을 의미합니다. 이 개념은 알아놓으면 좋은 것이 산업용 프로토콜 대부분은 이 기능이 있습니다. 그림으로 설명드릴게요. 

그림 10. Pub/Sub

위의 그림 10. 과 같이 Client 가 Server에게 요청을 합니다. 요청을 할때는 받고 싶은 데이터의 항목을 정할 수 있고 시간 간격도 정할 수 있습니다. Queue도 정할 수 있지요. 아주 간단합니다. 꼭 잡지를 구독하는 것과 같지요. 1달에 한번씩 잡지를 구독한다고 가정해볼게요. 그럼 원하는 잡지명, 그리고 1달에 한번 배달받을 날짜 등등을 잡지사에 알려야겠지요. 그럼 가만히만 있어도 구매자 입장에서는 알아서 잡지를 받아볼 수 있습니다. 택배기사님이 띵동하고 방문해서 잡지가 왔음을 알려주시겠죠? 만약에 이 기능을 사용하지 않으면 개발자 입장에서 얼마나 까다로운지 설명드리도록 할게요. 

 

그림 11. 최신값 Read 루틴일 경우 (Pub/Sub 사용안했을때)

 Pub/Sub을 사용하지 않으면 Client는 서버에 내가 원하는 주기마다 timer 혹은 thread를 돌면서 최신값을 달라고 요청을 해야합니다. 이 루틴도 비효율적이지만 문제는 값이 바뀌었을때를 인지할 수 있도록 클라이언트를 개발해야 해요. 상당히 번거롭고 귀찮습니다. 하지만 Pub/Sub을 요청하면 클라이언트에서는 가만히만 있어도 이벤트가 발생해서 Server에서 값이 바뀐 것을 알아차릴 수 있습니다. 

 

 9.  OPCUA의 Pub/Sub 

 

 8번에서 Pub/Sub이 무엇인지 알았다면 OPCUA 에서는 어떤식으로 Pub/Sub을 사용하는지 알려드리겠습니다.