Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
통합의 단순화: 임베디드 애플리케이션을 위한 지속적인 발행자/구독자 모델 Yi Zheng, Product Manager
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 등
Confidential Information of QNX Software Systems Limited
3
이 발표에서 확인하게 될 것들 … •메시징 모델
–비동기 (Asynchronous) –동기 (Synchronous) –지속적인 발행자/구독자 (PPS, Persistent Publish/Subscribe)
• PPS란 무엇인가? • PPS는 어떻게 동작하는가? • PPS는 어떻게 복잡한 시스템 설계와 개발이 직면한 문제에 도움을 줄 수 있는가?
Confidential Information of QNX Software Systems Limited
4
비동기 메시징 (Asynchronous Messaging) • 잘 알려지고 널리 사용됨
• 많은 장치와 구성요소가 있는 시스템에는 적절하지 않음
• 낮은 수준의 솔루션:
– 오류처리, 종단간 의미(end-to-end semantics)와 버퍼 관리를 애플리케이션 수준에서 처리 해야함.
– 다음과 같은 프로토콜 필요:
• 모든 어플리케이션
간에 정확한
메시징 동작
• 애플리케이션을
위한 충분한
메모리 확보
Confidential Information of QNX Software Systems Limited
5
동기 메시징(Synchronous): 전송/수신/답변 • 실시간 환경에서 매우 유용함
– 많은 프로세스들이 다음으로 진행하기 전에 보낸 메시지에 대한 답을 먼저 얻어야 함
– 시스템 프레임워크가 메시징 오류와 메시지 버퍼를 처리함
• 많은 장치와 구성요소가 있는 시스템에는 적절하지 않음
– 모든 서버가 클라이언트와 직접 통신해야 하며 모든 클라이언트 메시지에 응답하는 방법을 알아야 함
– 하나의 소프트웨어
요소를 바꾸면
다른 요소도
바꾸어야 함
– 확장이나 축소 조정이
용이하지 않음
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
– 관련 논문 수백여 개 발행
• 별칭, 옵저버 패턴
7
Confidential Information of QNX Software Systems Limited
지속적인 발행자/구독자 (Persistent Publish/Subscribe): PPS
• 재부팅 간에도 지속성을 지닌 발행자/구독자
• 유용한 임베디드 애플리케이션
– 다수의 장치와 소프트웨어 요소를 가진 경우
– 다양한 기술을 결합한 복잡한 HMI를 사용할 때
• Qt
• OpenGL ES
• C
8
Confidential Information of QNX Software Systems Limited
PPS 사례 연구: 스마트 에너지 매니저 (Smart Energy Manger)
• 설계 유연성
• HMI 설계
– HTML5
– Crank Software의 Storyboard
– Elektrobit의 Guide
• 접속성 (Connectivity)
– 지그비 (Zigbee) 무선 네트워크
– Insteon: 조명 조절을 위한 전력선 기반의 홈 네트워크
– IP 비디오 카메라
– 인터넷
9
Confidential Information of QNX Software Systems Limited
PPS 사례 연구: 의료 정보 수집기 (Medical Data Aggregator) •설계 유연성 •확장성 •접속성 (Connectivity)
– 데이터 베이스 – BlackBerry PlayBook
• HMI 설계 – Qt – C – Adobe Air
•기타 요소 – 혈압 – 폐활량 측정 – 펄스옥시미터 (Pulse oximeter) – 심전도
10
Confidential Information of QNX Software Systems Limited
메시징 아키텍처 • 연관 구속성이 적은 발행자-구독자 아키텍처 • “발행”은 비동기식 처리 • PPS 클라이언트
– 발행 요청만 하거나 – 구독 요청만 하거나 – 발행과 구독을 동시에 하거나 – 다수 오브젝트를 구독할 수 있음
11
Confidential Information of QNX Software Systems Limited
PPS 클라이언트 • 어떤 PPS 오브젝트에 관심이 있는지 미리 알아야 함
– 발행자는 무엇을 언제 발행할지 알아야 함
– 구독자는 어떤 오브젝트를 구독해야 하며, 어떤 오브젝트 속성에 관심이 있는 지 알아야 함
• 다음의 경우에만 오류와 버퍼 관리는 필요하며 나머지는 PPS 서비스가 처리
– open(), read(),write() 등 POSIX API에 대해 필요한 내용만
– 읽은 내용에 대해서 의미가 있음을 확인하기 위해
– 각 read에 대해서 blocking으로 설정할 지 아니면 non-blocking으로 할지에 대해
• 다음의 내용만 확인 필요
– 메시지가 이미 읽혀 졌는가
– 읽혀진 것을 파스(Parse)할 수 있는가
• 구독자는 오브젝트 내용을
얻기 위해 read() 호출
– 따라서, 이런 오브젝트에 대해 버퍼 관리가 필요 없음
12
Confidential Information of QNX Software Systems Limited
PPS 오브젝트
• PPS 파일 시스템 경로 공간에 통합되어 있음 – 발행자는 오브젝트와 그 속성을 수정하거나 파일 시스템에 쓸 수 있음
– 발행자가 오브젝트를 변경하면 PPS 서비스는 그 오브젝트를 구독하는 각 클라이언트에 이를 통보함
• 발행자는 한 오브젝트를 구독하는
모든 구독자와 통신하기 위해
그 오브젝트를 사용할 수 있음
• 다중 발행자와 구독자를 가질 수
있음
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 오브젝트나 속성을 포함하는 디버깅 정보를 프린트 할 수 있음
14
Confidential Information of QNX Software Systems Limited
Push 혹은 Pull 발행 시스템? • Push 발행 시스템
– 발행자는 데이터를 오브젝트에 push함 – 구독자는 통보를 받으면 데이터를 바로 읽거나, 시간이 있을 때 읽음
15
Confidential Information of QNX Software Systems Limited
Push 혹은 Pull 발행 시스템? • Pull 발행 시스템
– Push 발행을 통해서 어떤 데이터는 너무 빠르게 변할 수 있음
• 예) 어떤 인터페이스에 대한 패킷 수
– 구독자는 pull 옵션을 가진 오브젝트 사용
– read() 함수 호출을 통해 읽기 요청
– 그 오브젝트에 대한 발행자는 현재 데이터를 쓰도록 요청 받음
– 데이터가 다 쓰여질 때 까지 구독자의 read는 block되어 대기하고 , 완료된 다음 새로운 데이터를 가지고 함수 복귀함
– 주문형 발행
16
Confidential Information of QNX Software Systems Limited
스마트 에너지 관리 시스템(Smart Energy Management System): 하부 구조
17
Confidential Information of QNX Software Systems Limited
의료 정보 수집기 (Medical Data Aggregator): 하부 구조
18
Confidential Information of QNX Software Systems Limited
지속성 (Persistence)
• 신뢰성 있는 파일시스템 필요
– 하드 디스크, NAND/NOR 플래시, 맞춤형
파일시스템
• 재부팅간 데이터 유지
• 오브젝트를 영구적으로 지속성 있는 장치에 저장
– 요구에 따라 혹은
– 시스템 종료 시
• 재시작 시에 복구
– 즉시 복구 하거나
– 첫 번째 액세스 시
(지연된 로딩)
• 재시작을 간단히 할 수 있음
19
Confidential Information of QNX Software Systems Limited
설계 유연성 • 발행자와 구독자는 서로 알 지 못함 – 오브젝트를 통해서만 연결됨
• 이는 시스템을 설계 시 유연성 제공
• 데이터 흐름과 모듈 연결 지점 – 고정되어 코딩 될 필요 없음 – 직접 연결 되지 않아도 됨
• 실행 전에 데이터 흐름이나 모듈 간의 연결에 대한 결정을 할 필요 없음
20
Confidential Information of QNX Software Systems Limited
시스템 확장성
• 시스템을 더 복잡하게 하지 않고 구성요소 추가 가능
• 다음의 내용만 결정 필요 – 새로운 구성요소가 무엇을 발행할 것인가
– 다른 PPS 클라이언트가 발행을 요하는 데이터는 무엇인가
• 특별한 API 튜닝이 필요하지 않음
Confidential Information of QNX Software Systems Limited
21
결론 • PPS 메시징 아키텍처
– 유연한 설계 – 확장성 – 쉽게 장치나 소프트웨어 구성요소 추가 가능 – 접속성 (Connectivity) – 원본 시스템의 변경 없이 변경, 수정, 확장 가능 – 설계 안정성
© 2011 QNX 소프트웨어 시스템즈와 기타 제품의
이름은 미국과 그 외 나라들에 등록된
등록상표입니다. 이 문서의 정보는 정보를 전달하는
목적으로만 사용되며, 이 문서를 발표하는 시점에
QNX 소프트웨어 시스템즈 (이하 QSS)의 관점을
나타내주는 것입니다. QSS는 변화하는 시장 조건에
부응해야하기 때문에, 이 문서의 내용이 QSS가
지켜야하는 책무로 해석되어서는 안되며, QSS는 이
발표 이후에는 제공된 정보의 정확성을 보장할 수
없습니다. QSS는, 이 발표내용에 포함된 정보에
대해서 암시적으로나 법적으로 보장, 대변 또는
조건을 나타내지 않습니다.
Yi Zheng, Product Manager [email protected]