4. Seznam zpráv HTTP API

2N® Helios HTTP API definuje následující typy zpráv:

Detailní popis zpráv, jejich parametry a použití jsou popsány v následujícím textu.

Zpráva Subscribe

Požadavek Subscribe slouží k registraci klienta jako odběratele událostí z 2N Helios IP v režimu Subscribe, kdy 2N Helios IP autonomně posílá události v podobě zprávy Notify na HTTP adresu specifikovanou klientem.

Klient musí odeslat požadavek Subscribe na adresu 2N Helios IPhttp://helios_ip_address/notification.

2N Helios IP odpovídá na požadavek Subcribe odpovědí SubscribeResponse. 

Formát požadavku Subscribe:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
    xmlns:a="http://www.w3.org/2005/08/addressing"
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
  </s:Header>
  <s:Body>
    <wsnt:Subscribe>
      <wsnt:ConsumerReference>
        <a:Address>
          {HTTP_CONSUMER_ADDRESS}
        </a:Address>
      </wsnt:ConsumerReference>
      <wsnt:Filter>
        <wsnt:TopicExpression Dialect= 
            "http://www.2n.cz/2013/TopicExpression/Multiple">
          {EVENTS_LIST}
        </wsnt:TopicExpression>
      </wsnt:Filter>
      <wsnt:InitialTerminationTime>
        {DATETIME_OR_DURATION}
      </wsnt:InitialTerminationTime>
      <wsnt:SubscriptionPolicy>
        <event2n:MaximumNumber>
          {MAX_NUMBER_OF_MSGS_AT_ONCE}
        </event2n:MaximumNumber>
        <event2n:StartRecordId>
          {START_RECORD_ID}
        </event2n:StartRecordId>
        <event2n:StartTimestamp>
          {START_TIMESTAMP}
        </event2n:StartTimestamp>
      </wsnt:SubscriptionPolicy>
    </wsnt:Subscribe>
  </s:Body>
</s:Envelope>

Parametry zprávy

HTTP_CONSUMER_ADDRESS

Adresa, na kterou se budou posílat zprávy Notify obsahující události. Adresa musí být ve formátu HTP URI, např. http://192.168.23.73/notify_server. Parametr je povinný.

DATETIME_OR_DURATION

Udává dobu, na kterou se chce klient registrovat. Po vypršení této doby je registrace na straně 2N Helios IP automaticky zrušena. Registraci lze před jejím vypršením prodloužit pomocí požadavku Renew. Pro specifikaci doby trvání registrace je možné použít absolutní čas (DateTime) nebo relativní dobu trvání (Duration), viz kap. Formát vybraných parametrů. Parametr je povinný.

EVENTS_LIST

Seznam typů vyžadovaných událostí. Jednotlivé typy událostí jsou v seznamu odděleny čárkou, např. event2n:KeyPressed, event2n:CardEntered. Parametr je nepovinný. V případě, že není uveden, klient bude dostávat všechny typy událostí.

MAX_NUMBER_OF_MSGS_AT_ONCE

Maximální počet událostí, které mohou být odeslány v rámci jedné zprávy Notify. Parametr je nepovinný. V případě, že není uveden, v jedné zprávě Notify bude odesláno maximálně 10 událostí.

START_TIMESTAMP

Udává datum a čas nejstarší událostí, kterou chce klient obdržet v rámci zpráv Notify jako první. Parametr je nepovinný. V případě, že není uveden, klient obdrží všechny události uložené v logu.

START_RECORD_ID

Udává RecordId události v logu, kterou chce klient obdržet v rámci zpráv Notify jako první. Parametr je nepovinný. V případě, že není uveden, klient obdrží všechny události uložené v logu.

Zpráva SubscribeResponse

Zpráva SubscribeResponse slouží jako odpověď na požadavek Subscribe. Pomocí této zprávy 2N Helios IP informuje o provedení registrace klienta k odběru událostí.

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa5="http://www.w3.org/2005/08/addressing"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
    <wsa5:Action s:mustUnderstand="true">
      http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeResponse
    </wsa5:Action>
  <s:Header>
  <s:Body>
    <wsnt:SubscribeResponse>
      <wsnt:SubscriptionReference>
        <wsa5:Address>
          {NOTIFICATIONS_PRODUCER_ADDRESS}
        </wsa5:Address>
        <wsa5:ReferenceParameters>
          <event2n:SubscriptionId>
            {SUBSCRIPTION_ID}
          </event2n:SubscriptionId>
        </wsa5:ReferenceParameters>
      </wsnt:SubscriptionReference>
      <wsnt:CurrentTime>
        {CURRENT_TIME}
      </wsnt:CurrentTime>
      <wsnt:TerminationTime>
        {EXPIRE_TIME}
      </wsnt:TerminationTime>
    </wsnt:SubscribeResponse>
  </s:Body>
</s:Envelope>

Parametry zprávy

NOTIFICATIONS_PRODUCER_ADDRESS

Adresa, kterou lze použít pro následující komunikaci s 2N Helios IP týkající se této registrace (tj. cílová adresa pro požadavky Unsubscribe a Renew). V současné implementaci je tato adresa vždy http://helios_ip_address/notification.

SUBSCRIPTION_ID

Jednoznačná identifikace registrace (subscription), kterou lze použít pro následující komunikaci s 2N Helios IP (v požadavcích Renew, Unsubscribe). Klient by měl zacházet s tímto Id jako s obecným textem.

CURRENT_TIME

Aktuální datum a čas z pohledu 2N Helios IP v okamžiku provedení registrace. Formát viz kap. Formát vybraných parametrů.

EXPIRE_TIME

Datum a čas automatického ukončení registrace. Klient může prodloužit registraci před jejím vypršením pomocí požadavku Renew. Formát viz kap. Formát vybraných parametrů.

Zpráva CreatePullPoint

Požadavek CreatePullPoint slouží k registraci klienta jako odběratele událostí z 2N Helios IP v režimu PullPoint, kdy klient aktivně vyčítá události z logu pomocí požadavku GetMessages..

Klient musí odeslat požadavek CreatePullPoint na adresu 2N Helios IP:

http://helios_ip_address/notification

2N Helios IP odpovídá na požadavek CreatePullPoint odpovědí CreatePullPointResponse.

Formát požadavku CreatePullPoint:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
  </s:Header>
  <s:Body>
    <wsnt:CreatePullPoint>
      <wsnt:Filter>
        <wsnt:TopicExpression Dialect=
           "http://www.2n.cz/2013/TopicExpression/Multiple">
          {EVENTS_LIST}
        </wsnt:TopicExpression>
      </wsnt:Filter>      
      <wsnt:InitialTerminationTime>
        {DATETIME_OR_DURATION}
      </wsnt:InitialTerminationTime>
      <wsnt:SubscriptionPolicy>
        <event2n:StartRecordId>
          {START_RECORD_ID}
        </event2n:StartRecordId>
        <event2n:StartTimestamp>
          {START_TIMESTAMP}
        </event2n:StartTimestamp>
      </wsnt:SubscriptionPolicy>
    </wsnt:CreatePullPoint>
  </s:Body>
</s:Envelope>

Zpráva CreatePullPointResponse

Zpráva CreatePullPointResponse slouží jako odpověď na požadavek CreatePullPoint. Pomocí této odpovědi 2N Helios IP informuje o provedení registrace klienta k odběru událostí.

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
    xmlns:wsa5="http://www.w3.org/2005/08/addressing" 
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" 
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
    <wsa5:Action>//http://docs.oasis-open.org/wsn/bw-2/CreatePullPoint/CreatePullPointResponse
    </wsa5:Action>
  </s:Header>
  <s:Body>
    <wsnt:CreatePullPointResponse>
      <wsnt:SubscriptionReference>
        <wsa5:Address>
          {NOTIFICATIONS_PRODUCER_ADDRESS}
        </wsa5:Address>
        <wsa5:ReferenceParameters>
          <event2n:SubscriptionId>
            {SUBSCRIPTION_ID}
          </event2n:SubscriptionId>
        </wsa5:ReferenceParameters>
      </wsnt:SubscriptionReference>
      <wsnt:CurrentTime>
        {CURRENT_TIME}
      </wsnt:CurrentTime>
      <wsnt:TerminationTime>
        {EXPIRE_TIME}
      </wsnt:TerminationTime>
    </wsnt:CreatePullPointResponse>
  </s:Body>
</s:Envelope>

Parametry zprávy

NOTIFICATIONS_PRODUCER_ADDRESS

Adresa, kterou lze použít pro následující komunikaci s 2N Helios IP týkající se této registrace (tj. cílová adresa pro požadavky Unsubscribe a Renew, GetMessages). V současné implementaci je tato adresa vždy http://helios_ip_address/notification.

SUBSCRIPTION_ID

Jednoznačná identifikace registrace (subscription), kterou je nutno použít pro následující komunikaci s 2N Helios IP (v požadavcích Renew, Unsubscribe, GetMessages). Klient by měl zacházet s tímto Id jako s obecným textem.

CURRENT_TIME

Aktuální datum a čas z pohledu 2N Helios IP v okamžiku provedení registrace. Formát viz kap. Formát vybraných parametrů.

EXPIRE_TIME

Datum a čas automatického ukončení registrace. Klient může prodloužit registraci před jejím vypršením pomocí požadavku Renew. Formát viz kap. Formát vybraných parametrů.

Zpráva Renew

Požadavek Renew slouží k prodloužení registrace odběru událostí ze strany klienta. Klient odesílá tento požadavek na adresu uvedenou v odpovědi SubscribeResponse. 2N Helios IP odpovídá zprávou RenewResponse.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope
    xmlns:s="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
    <event2n:SubscriptionId a:IsReferenceParameter="true">
      {SUBSCRIPTION_ID}
    </event2n:SubscriptionId>
  </s:Header>
  <s:Body>
    <wsnt:Renew>
      <wsnt:TerminationTime>
        {DATETIME_OR_DURATION}
      </wsnt:TerminationTime>
    </wsnt:Renew>
  </s:Body>
</s:Envelope>

Parametry zprávy

SUBSCRIPTION_ID

Jednoznačná identifikace registrace (subscription), získaná z odpovědi SubscriptionResponse. Parametr je povinný.

DATETIME_OR_DURATION

Udává dobu, na kterou se chce klient prodloužit registraci. Po vypršení této doby je registrace na straně 2N Helios IP automaticky zrušena. Registraci lze před jejím vypršením prodloužit pomocí dalšího požadavku Renew. Pro specifikaci doby trvání registrace je možné použít absolutní čas (DateTime) nebo relativní dobu trvání (Duration), viz kap. Formát vybraných parametrů. Parametr je povinný.

Zpráva RenewResponse

Zpráva RenewResponse slouží jako odpověď na požadavek Renew. Pomocí této zprávy 2N Helios IP informuje o prodloužení registrace klienta k odběru událostí. 

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa5="http://www.w3.org/2005/08/addressing"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
  <s:Header>
    <wsa5:Action s:mustUnderstand="true">
      http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/RenewResponse
    </wsa5:Action>
  </s:Header>
  <s:Body>
    <wsnt:RenewResponse>
      <wsnt:TerminationTime>
        {CURRENT_TIME}
      </wsnt:TerminationTime>
      <wsnt:CurrentTime>
        {EXPIRE_TIME}
      </wsnt:CurrentTime>
    </wsnt:RenewResponse>
  </s:Body>
</s:Envelope>

Parametry zprávy

CURRENT_TIME

Aktuální datum a čas z pohledu 2N Helios IP v okamžiku provedení registrace. Formát parametru viz kap. Formát vybraných parametrů.

EXPIRE_TIME

Datum a čas automatického ukončení registrace. Klient může prodloužit registraci před jejím vypršením pomocí požadavku Renew. Formát parametru viz kap. Formát vybraných parametrů.

Zpráva Unsubscribe

Požadavek Unsubscribe slouží k ukončení registrace odběru událostí ze strany klienta. Klient odesílá tento požadavek na adresu uvedenou v odpovědi SubscribeResponse. 2N Helios IP odpovídá na zprávou UnsubscribeResponse.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope
    xmlns:s="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
    <event2n:SubscriptionId a:IsReferenceParameter="true">
      {SUBSCRIPTION_ID}
    </event2n:SubscriptionId>
  </s:Header>
  <s:Body>
    <wsnt:Unsubscribe>
    </wsnt:Unsubscribe>
  </s:Body>
</s:Envelope>

Parametry zprávy

SUBSCRIPTION_ID

Jednoznačná identifikace registrace (subscription) získaná z odpovědi SubscriptionResponse. Parametr je povinný.

Zpráva UnsubscribeResponse

Zpráva UnsubscribeResponse slouží jako odpověď na požadavek Unsubscibe. Pomocí této zprávy 2N Helios IP potvrzuje klientu ukončení registrace.

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope
    xmlns:s="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa5="http://www.w3.org/2005/08/addressing"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
  <s:Header>
    <wsa5:Action s:mustUnderstand="true">
      http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/UnsubscribeResponse
    </wsa5:Action>
  </s:Header>
  <s:Body>
    <wsnt:UnsubscribeResponse>
    </wsnt:UnsubscribeResponse>
  </s:Body>
</s:Envelope>

Zpráva GetMessages

Požadavek GetMessages slouží k aktivnímu vyčítání událostí z 2N Helios IP klientem. Klient odesílá tento požadavek na adresu uvedenou v odpovědi CreatePullPointResponse. 2N Helios IP odpovídá zprávou GetMessageResponse.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" 
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
    <event2n:SubscriptionId a:IsReferenceParameter="true">
      {SUBSCRIPTION_ID}
    </event2n:SubscriptionId>
  </s:Header>
  <s:Body>
    <wsnt:GetMessages>
      <wsnt:MaximumNumber>
        {MAXIMUM_MSGS_IN_RESPONSE}
      </wsnt:MaximumNumber>
      <wsnt:Timeout>
        {WAIT_TIMEOUT}
      </wsnt:Timeout>
    </wsnt:GetMessages>
  </s:Body>
</s:Envelope>

Parametry zprávy

SUBSCRIPTION_ID

Jednoznačná identifikace registrace (subscription), získaná z odpovědi SubscriptionResponse. Parametr je povinný.

MAXIMUM_MSGS_IN_RESPONSE

Maximální počet událostí, které mohou být odeslány v rámci odpovědi GetMessagesResponse. Parametr je nepovinný. V případě, že není uveden, v jedné odpovědi GetMessagesResponse bude odesláno maximálně 10 událostí.

WAIT_TIMEOUT

Zpoždění odeslání odpovědi. Hodnota může být v rozmezí 0–90 (nastavuje se v sekundách). Pokud je hodnota větší než 90, tak se použije 90. Pokud není parametr nastaven, tak se zpoždění neuplatní. Parametr je volitelný.

 

Zpráva GetMessagesResponse

Zpráva GetMessagesResponse slouží jako odpověď na požadavek GetMessages. 

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
    xmlns:topic2n="http://www.2n.cz/2013/event/topics" 
    xmlns:wsa5="http://www.w3.org/2005/08/addressing" 
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" 
    xmlns:event2n="http://www.2n.cz/2013/event">
  <s:Header>
    <wsa5:Action s:mustUnderstand="true">
      http://docs.oasis-open.org/wsn/bw-2/PullPoint/GetMessagesResponse
    </wsa5:Action>
  </s:Header>
  <s:Body>
    <wsnt:GetMessagesResponse>
       {EVENT_LIST}
    </wsnt:GetMessagesResponse>
  </s:Body>
</s:Envelope>

Parametry zprávy

EVENT_LIST

Seznam událostí – viz kapitola Logované události. Seznam událostí může být prázdný. Maximální počet událostí odeslaných najednou lze specifikovat při registraci (v požadavku CreatePullPoint) nebo přímo v požadavku GetMessages. 

Zpráva Notify

Zpráva Notify slouží k oznámení vzniku nové události v režimu odběru událostí typu Subscription. 2N Helios IP posílá zprávu Notify na adresu uvedenou při registraci pomocí požadavku Subscribe. Zpráva Notify musí být potvrzena druhou druhou stranou zprávou OK, jinak se další zpráva Notify pošle po vypršení časového limitu cca 5 s.

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope 
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
    xmlns:topic2n="http://www.2n.cz/2013/event/topics" 
    xmlns:event2n="http://www.2n.cz/2013/event"
    xmlns:wsa5="http://www.w3.org/2005/08/addressing"
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
  <s:Header>
    <wsa5:Action s:mustUnderstand="true">
      http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify
    </wsa5:Action>
  </s:Header>
  <s:Body>
    <wsnt:Notify>
       {EVENT_LIST}
    </wsnt:Notify>
  </s:Body>
</s:Envelope>

Parametry zprávy

EVENT_LIST

Seznam událostí – viz kapitola Logované události. Zpráva obsahuje vždy alespoň jednu událost. Maximální počet událostí lze specifikovat při registraci (v požadavku Subscribe).