Ping Service, Version 1

  • Id: RS-014.
  • Status: Working draft.
  • Type: Implementation.

Abstract

This document describes Ping, a trivial service used to test the underlying implementation and deployment of Awala, thus mitigating integration issues.

Table of contents

  1. Introduction
  2. Transactions
  3. Messages
    1. Ping
    2. Pong

Introduction

Awala consists of endpoints, gateways and couriers, which may run on different operating systems, on different hardware and in different physical environments. These components support different messaging protocols and message transport bindings, and may be built and run by different organizations.

This specification mitigates the integration issues that could arise from the implementation and deployment of Awala by offering a very simple service that can be used to test that applications can exchange messages.

Ping is a trivial service: Given applications A and B, application A sends a ping message to application B, to which application B has to respond with a pong message.

Transactions

A transaction is initiated with a ping message and is completed when the pong message reaches its destination.

The two applications MAY continue to run subsequent transactions. This could be useful to test the stability of the channel and the underlying session provided by the Channel Session Protocol.

Messages

This service employs the following messages.

Ping

This is the message that initiates a transaction. Its type MUST be application/vnd.awala.ping-v1.ping, and its payload MUST be JSON-serialized with the following properties:

  1. id: The ping id, a sequence of exactly 36 octets. It SHOULD be a UUID4 value.
  2. pda_path: The DER-serialized, CertificationPath of the Parcel Delivery Authorization (PDA) to use to reply with a pong message.
  3. endpoint_internet_address: The Internet address of the endpoint sending the ping (which should receive the pong message). This will typically be the Internet gateway paired to the sender’s private address.

Pong

This message MUST be sent by the application receiving a ping message. Its type MUST be application/vnd.awala.ping-v1.pong. The payload MUST be a sequence of 36 octets representing the ping id.