AllJoyn 이해 - Base Service의 Notification 개념 정리
Allseen Alliance에 소개되어 있는 AllJoyn Base Service의 Notification 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다.
(원문 참조 : https://allseenalliance.org/developers/learn/base-services/notification )
(원문 참조 : https://allseenalliance.org/developers/learn/base-services/notification )
NOTIFICATION
AllJoyn® Notification 서비스 프레임워크는 디바이스나 앱들에서 사람이 읽을 수 있는 텍스트를 디스플레이하거나 또는 재생하거나(즉, 오디오와 같은 Text to Speech로 표현할 수 있는)하는 일반 매카니즘을 제공합니다. Notifications은 AllJoyn 네트워크상에서 모든 디바이스와 앱들이 수신할 수 있도록 방송됩니다. 그리고 알림은 만든이에 의해 정의된 특정 생존시간(Time to Live)을 유지할 수 있습니다.
텍스트외에도, 오디오, 이미지, 컨트롤패널 객체 또는 다른 사용자 정의 속성들을 보낼 수 있습니다. 사용자 정의 속성들을 제어하고 표현하기 위한 최선의 방법을 결정하는 것은 처리방법에 달려있습니다. 또한 Notifications은 모든 소비자들에 범용적으로 거부될 수도 있습니다.
Concepts and Terminology
Producer and Consumer
두가지 역할이 존재합니다.
- Producer. 생산자는 알림을 보내는 쪽입니다.
- Consumer. 소비자는 알림을 수신하는 쪽입니다.
Message Types
Notifications는 정보(Info), 경고(Warning), 긴급(Emergency) 등의 세가지 중 하나로 될 수 있습니다. 정보는 가장 많이 사용됩니다. 경고는 좀더 주의를 요하는 알림에 사용될 수 있습니다. 유사하게 긴급은 아주 긴급한 주의를 요구하는 상황에서 신중하게 사용할 수 있습니다.
Time-to-live (TTL)
각 메시지는 밀리세컨드 단위로 특정 생존시간과 함께 전송 됩니다. 그 메시지는 생존시간이 종료될때 까지 네트웍상에서 유지 됩니다. 만약 소비자가 생존시간내에 네트워크에 접속한다면 그 메시지를 수신할 수 있습니다.
또한, 동일한 메시지 유형을 사용하는 메시지는 다른 메시지를 덮을 수 있습니다. 따라서 어떤 주어진 시간내에 주어진 생산자에 유효한 3가지 메시지 종류는 각각의 메시지 유형에 대해 1개 이상일 수 없습니다. 예를 들어, 100초의 생존시간을 가진 정보메시지를 보내고 난후 20초 뒤에 새로운 정보메시지를 보낼 때, 새로운 정보메시지는 이전 정보메시지를 덮어쓰게 됩니다. 소비자는 이전 메시지의 생존시간이 종료되지 않았음에도 불구하고 이전 메시지를 받을 수 없고 오직 새로운 메시지만 받을 수 있습니다.
Multiple Language Support
모든 AllJoyn 서비스들과 마찬가지로, Notification 은 다중 언어를 지원합니다. 생산자는 지원하는 모든 언어로 된 스트링을 보냅니다. 소비자는 소비자 자신의 요구에 가장 적합한 지원되는 언어를 사용할 수 있습니다.
Dismiss
알림 거절은 3가지 방법으로 발생할 수 있습니다.
1. 소비자는 자신의 사용자 인터페이스로 내부적으로 알림을 제거하는 설정으로 거절할 수 있습니다. 이로인해서 더이상 알림을 볼수 없습니다. 이경우, 네트워크상의 다른 소비자가 그 알림을 보는데는 아무 지장이 없습니다.
2. 소비자 또는 생산자는 네트워크상의 모든 소비자들에게 거절할 신호를 보낼 수 있습니다. 소비자는 이 신호를 수신하면, 화면으로 부터 알림을 제거할 것으로 보입니다.
3. 소비자는 계속해서 알림 방송을 중단해 줄것을 생산자에 얘기할 수 있습니다.
새로운 소비자들은 더이상 알림을 받을 수 없습니다.
Audio and Image
Notifications은 특정하게된 속성들을 허용합니다. 이것은 단지 텍스트를 넘어선 확장된 차원의 알림을 제공합니다. 가장 일반적인 속성들은 오디오와 이미지 입니다. 속성은 특정한 URL이 될 수도 있고 AllJoyn 객체의 경로도 될 수 있습니다. 만약 URL이 제공된다면, 소비자는 선택적으로 특정한 URL을 통해서 오디오 혹은 이미지를 가져올 수도 있고 적절하게 내부적으로 재생할 수 있습니다.
Control Panel Object Path
특별한 속성은 컨트롤 패널의 객체 경로입니다. 생산자는 소비자에게 추가된 방향을 제공하기 위해 이 속성을 채웁니다. 소비자가 이 알림을 수신할때, 만약 Control Panel 서비스를 지원하는 경우, 객체의 경로에서 컨트롤 패널을 가져와서 사용자에게 표시하도록 권장합니다. 일반적으로 이것은 소비자가 알림과 연관된 동작을 수행할 수 있도록 허용합니다.
예로 오븐이 어떤 상태로 되었다라고 알림을 보낼 때, 추가적으로 사용자가 선택적으로 오븐을 끌수 있는 컨트롤 패널을 제공하는 것을 포함할 수 있습니다.
Custom Attributes
알림은 몇개의 사용자 정의 키/값으로된 속성들의 쌍을 포함할 수 있습니다. 소비자는 풍부한 알림을 표시하기 위해 이 정보를 선택적으로 사용할 수 있습니다. 사용자 정의 속성들을 적절히 사용하기 위해 생산자에 대한 특별한 정보를 소비자가 가져야 할 필요성과 같은 어플리케이션 특화된 사용자 정의 속성들이 있습니다. 예를 들면, 새로운 곡이 연주될때 마다 알림을 보내는 라디오를 상상해 보세요. 이 알림은 텍스트로된 아티스트 및 제목과 앨범아트 URL에 대한 사용자 정의 속성을 포함하고 있습니다. 일반 소비자는 알림을 받고 단지 아티스트 와 타이틀인 텍스트 알림만 디스플레이 합니다. 그러나 이 생산자를 잘 인지하고 있는 소비자는 풍부한 사용자정의 알림을 제공하는 알림 텍스트와 함께 앨범아트 URL을 얻어 디스플레이도 할 수 있습니다.
How It Works
비결은, Notifications는 AllJoyn Sessionless 신호들을 사용하여 전송됩니다. Sessionless 신호들은 알림을 보내고 받는데 필요한 모든것을 제공합니다.
댓글
댓글 쓰기