yi zheng, product manager - qnx · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의...

22
통합의 단순화: 임베디드 애플리케이션을 위한 지속적인 발행자/구독자 모델 Yi Zheng, Product Manager

Upload: others

Post on 22-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

통합의 단순화: 임베디드 애플리케이션을 위한 지속적인 발행자/구독자 모델 Yi Zheng, Product Manager

Page 2: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

2

Confidential Information of QNX Software Systems Limited 소개:

복잡한 시스템의 당면과제 • 신뢰성 & 가용성

– OS

• 설계 유연성

• 확장성

• 접속성 (Connectivity)

– 네트워크, 다양한 장치와 기술

• HMI 설계

– 다양한 기술의 통합 (OpenGL ES, Qt, etc.)

• 자원 분리 (예: 샌드박스)

• 핵심 제품에 대한 브랜드 이미지 부여 및 재구성(Re-purposing)

• 개발 기간

• 인증

– IEC 62304, IEC 61508, ISO 13485, ISO 1497 등

Page 3: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

Confidential Information of QNX Software Systems Limited

3

이 발표에서 확인하게 될 것들 … •메시징 모델

–비동기 (Asynchronous) –동기 (Synchronous) –지속적인 발행자/구독자 (PPS, Persistent Publish/Subscribe)

• PPS란 무엇인가? • PPS는 어떻게 동작하는가? • PPS는 어떻게 복잡한 시스템 설계와 개발이 직면한 문제에 도움을 줄 수 있는가?

Page 4: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

Confidential Information of QNX Software Systems Limited

4

비동기 메시징 (Asynchronous Messaging) • 잘 알려지고 널리 사용됨

• 많은 장치와 구성요소가 있는 시스템에는 적절하지 않음

• 낮은 수준의 솔루션:

– 오류처리, 종단간 의미(end-to-end semantics)와 버퍼 관리를 애플리케이션 수준에서 처리 해야함.

– 다음과 같은 프로토콜 필요:

• 모든 어플리케이션

간에 정확한

메시징 동작

• 애플리케이션을

위한 충분한

메모리 확보

Page 5: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

Confidential Information of QNX Software Systems Limited

5

동기 메시징(Synchronous): 전송/수신/답변 • 실시간 환경에서 매우 유용함

– 많은 프로세스들이 다음으로 진행하기 전에 보낸 메시지에 대한 답을 먼저 얻어야 함

– 시스템 프레임워크가 메시징 오류와 메시지 버퍼를 처리함

• 많은 장치와 구성요소가 있는 시스템에는 적절하지 않음

– 모든 서버가 클라이언트와 직접 통신해야 하며 모든 클라이언트 메시지에 응답하는 방법을 알아야 함

– 하나의 소프트웨어

요소를 바꾸면

다른 요소도

바꾸어야 함

– 확장이나 축소 조정이

용이하지 않음

Page 6: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

Confidential Information of QNX Software Systems Limited

6

발행자/구독자 • 발행자/구독자

• 20년 이상 된 모델: K. P. Birman과 T. A. Joseph (1987)

– 가상 동기: “내결함성 비동기 게시판 메커니즘(a fault-tolerant asynchronous bulletin board mechanism)”

• 발행자/구독자 모델을 구현한 많은 예가 존재함

– Nortel 네트워크: 네트워크 모니터링과 리포팅 시스템 (DMS-100 등)

• ACM 학회지 (Association for Computing Machinery) www.acm.org

– 관련 논문 수백여 개 발행

• 별칭, 옵저버 패턴

Page 7: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

7

Confidential Information of QNX Software Systems Limited

지속적인 발행자/구독자 (Persistent Publish/Subscribe): PPS

• 재부팅 간에도 지속성을 지닌 발행자/구독자

• 유용한 임베디드 애플리케이션

– 다수의 장치와 소프트웨어 요소를 가진 경우

– 다양한 기술을 결합한 복잡한 HMI를 사용할 때

• Qt

• OpenGL ES

• C

Page 8: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

8

Confidential Information of QNX Software Systems Limited

PPS 사례 연구: 스마트 에너지 매니저 (Smart Energy Manger)

• 설계 유연성

• HMI 설계

– HTML5

– Crank Software의 Storyboard

– Elektrobit의 Guide

• 접속성 (Connectivity)

– 지그비 (Zigbee) 무선 네트워크

– Insteon: 조명 조절을 위한 전력선 기반의 홈 네트워크

– IP 비디오 카메라

– 인터넷

Page 9: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

9

Confidential Information of QNX Software Systems Limited

PPS 사례 연구: 의료 정보 수집기 (Medical Data Aggregator) •설계 유연성 •확장성 •접속성 (Connectivity)

– 데이터 베이스 – BlackBerry PlayBook

• HMI 설계 – Qt – C – Adobe Air

•기타 요소 – 혈압 – 폐활량 측정 – 펄스옥시미터 (Pulse oximeter) – 심전도

Page 10: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

10

Confidential Information of QNX Software Systems Limited

메시징 아키텍처 • 연관 구속성이 적은 발행자-구독자 아키텍처 • “발행”은 비동기식 처리 • PPS 클라이언트

– 발행 요청만 하거나 – 구독 요청만 하거나 – 발행과 구독을 동시에 하거나 – 다수 오브젝트를 구독할 수 있음

Page 11: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

11

Confidential Information of QNX Software Systems Limited

PPS 클라이언트 • 어떤 PPS 오브젝트에 관심이 있는지 미리 알아야 함

– 발행자는 무엇을 언제 발행할지 알아야 함

– 구독자는 어떤 오브젝트를 구독해야 하며, 어떤 오브젝트 속성에 관심이 있는 지 알아야 함

• 다음의 경우에만 오류와 버퍼 관리는 필요하며 나머지는 PPS 서비스가 처리

– open(), read(),write() 등 POSIX API에 대해 필요한 내용만

– 읽은 내용에 대해서 의미가 있음을 확인하기 위해

– 각 read에 대해서 blocking으로 설정할 지 아니면 non-blocking으로 할지에 대해

• 다음의 내용만 확인 필요

– 메시지가 이미 읽혀 졌는가

– 읽혀진 것을 파스(Parse)할 수 있는가

• 구독자는 오브젝트 내용을

얻기 위해 read() 호출

– 따라서, 이런 오브젝트에 대해 버퍼 관리가 필요 없음

Page 12: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

12

Confidential Information of QNX Software Systems Limited

PPS 오브젝트

• PPS 파일 시스템 경로 공간에 통합되어 있음 – 발행자는 오브젝트와 그 속성을 수정하거나 파일 시스템에 쓸 수 있음

– 발행자가 오브젝트를 변경하면 PPS 서비스는 그 오브젝트를 구독하는 각 클라이언트에 이를 통보함

• 발행자는 한 오브젝트를 구독하는

모든 구독자와 통신하기 위해

그 오브젝트를 사용할 수 있음

• 다중 발행자와 구독자를 가질 수

있음

Page 13: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

13

Confidential Information of QNX Software Systems Limited

바이너리 혹은 사람이 읽을 수 있는 오브젝트? • 일반적인 PPS 서비스는 바이너리 오브젝트나 사람이 읽을 수 있는 오브젝트 모두 사용 가능함

• QNX PPS: 사람이 읽을 수 있는 오브젝트와 속성

– 이러한 구현에서 발생하는 개발이나 디버깅의 이점은 더 큰 오브젝트를 사용했을 경우 발생하는 비용을 능가할 수 있음

• 커맨드 라인을 통한 디버깅

– 파일 시스템 유틸리티 사용

– 구독을 위해 cat 사용

cat /pps/media/PlayCurrent

cat /pps/media/.all?wait

– 발행을 위해 echo 사용

echo "attr::value" >>/pps/objectfilename

• 간단한 스크립트를 통해

– 오브젝트를 구독할 수 있음

– PPS 오브젝트나 속성을 포함하는 디버깅 정보를 프린트 할 수 있음

Page 14: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

14

Confidential Information of QNX Software Systems Limited

Push 혹은 Pull 발행 시스템? • Push 발행 시스템

– 발행자는 데이터를 오브젝트에 push함 – 구독자는 통보를 받으면 데이터를 바로 읽거나, 시간이 있을 때 읽음

Page 15: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

15

Confidential Information of QNX Software Systems Limited

Push 혹은 Pull 발행 시스템? • Pull 발행 시스템

– Push 발행을 통해서 어떤 데이터는 너무 빠르게 변할 수 있음

• 예) 어떤 인터페이스에 대한 패킷 수

– 구독자는 pull 옵션을 가진 오브젝트 사용

– read() 함수 호출을 통해 읽기 요청

– 그 오브젝트에 대한 발행자는 현재 데이터를 쓰도록 요청 받음

– 데이터가 다 쓰여질 때 까지 구독자의 read는 block되어 대기하고 , 완료된 다음 새로운 데이터를 가지고 함수 복귀함

– 주문형 발행

Page 16: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

16

Confidential Information of QNX Software Systems Limited

스마트 에너지 관리 시스템(Smart Energy Management System): 하부 구조

Page 17: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

17

Confidential Information of QNX Software Systems Limited

의료 정보 수집기 (Medical Data Aggregator): 하부 구조

Page 18: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

18

Confidential Information of QNX Software Systems Limited

지속성 (Persistence)

• 신뢰성 있는 파일시스템 필요

– 하드 디스크, NAND/NOR 플래시, 맞춤형

파일시스템

• 재부팅간 데이터 유지

• 오브젝트를 영구적으로 지속성 있는 장치에 저장

– 요구에 따라 혹은

– 시스템 종료 시

• 재시작 시에 복구

– 즉시 복구 하거나

– 첫 번째 액세스 시

(지연된 로딩)

• 재시작을 간단히 할 수 있음

Page 19: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

19

Confidential Information of QNX Software Systems Limited

설계 유연성 • 발행자와 구독자는 서로 알 지 못함 – 오브젝트를 통해서만 연결됨

• 이는 시스템을 설계 시 유연성 제공

• 데이터 흐름과 모듈 연결 지점 – 고정되어 코딩 될 필요 없음 – 직접 연결 되지 않아도 됨

• 실행 전에 데이터 흐름이나 모듈 간의 연결에 대한 결정을 할 필요 없음

Page 20: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

20

Confidential Information of QNX Software Systems Limited

시스템 확장성

• 시스템을 더 복잡하게 하지 않고 구성요소 추가 가능

• 다음의 내용만 결정 필요 – 새로운 구성요소가 무엇을 발행할 것인가

– 다른 PPS 클라이언트가 발행을 요하는 데이터는 무엇인가

• 특별한 API 튜닝이 필요하지 않음

Page 21: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

Confidential Information of QNX Software Systems Limited

21

결론 • PPS 메시징 아키텍처

– 유연한 설계 – 확장성 – 쉽게 장치나 소프트웨어 구성요소 추가 가능 – 접속성 (Connectivity) – 원본 시스템의 변경 없이 변경, 수정, 확장 가능 – 설계 안정성

Page 22: Yi Zheng, Product Manager - QNX · 2014-07-09 · qnx 소프트웨어 시스템즈 (이하 qss)의 관점을 나타내주는 것입니다. qss는 변화하는 시장 조건에 부응해야하기

© 2011 QNX 소프트웨어 시스템즈와 기타 제품의

이름은 미국과 그 외 나라들에 등록된

등록상표입니다. 이 문서의 정보는 정보를 전달하는

목적으로만 사용되며, 이 문서를 발표하는 시점에

QNX 소프트웨어 시스템즈 (이하 QSS)의 관점을

나타내주는 것입니다. QSS는 변화하는 시장 조건에

부응해야하기 때문에, 이 문서의 내용이 QSS가

지켜야하는 책무로 해석되어서는 안되며, QSS는 이

발표 이후에는 제공된 정보의 정확성을 보장할 수

없습니다. QSS는, 이 발표내용에 포함된 정보에

대해서 암시적으로나 법적으로 보장, 대변 또는

조건을 나타내지 않습니다.

Yi Zheng, Product Manager [email protected]