Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Insert excerpt
Task Status
Task Status
nopaneltrue



Table of Contents

Introduction

Service implementations can use the Advanced Message Queuing Protocol (AMQP) v1.0 international standard. This is available at https://www.amqp.org/.

It is discussed in connection with the EUROCONTROL SWIM TI Yellow Profile Specification on the SWIM reference website. See:

The issue of topics has been discussed in the FAQ. See:

Documenting its use


Info
titleThe overall approach
There is no need to rewrite the standards. For example, there is no need to document the operations defined by the standard. It is preferable to refer to where they are documented.

SWIM-SERV-120 Service standard reference

The following example shows how to document the use of AMQP.

Code Block
languagejs
titleExample of SWIM-SERV-120 using Service Metadata Schema
"references": {
 "implementedStandard": [{
  "title": "Advanced Message Queuing Protocol (AMQP) v1.0",
  "reference": {
   "url": " https://www.amqp.org/"
  },
  "standardType": "SERVICE_SPECIFICATION",
  "conformanceStatement": "The service implements ..."
 }]
}


SWIM-SERV-140 Service functions

The functionality name could be somehow harmonised for AMQP services or a general term, because it delivers always data.

Code Block
languagejs
titleExample of SWIM-SERV-140 using Service Metadata Schema
"generalDescription": {
 "functionality": [{
  "name": "...",
  "description": "...",
  "realWorldEffect": "..."
 }, {
  "name": "..",
  "description": "...",
  "realWorldEffect": "..."
 }]
}


SWIM-SERV-240 Service interfaces

Name and description could be harmonised e.g. AMQP Notification, AMQP Subscription.

SWIM-SERV-240 already contains a <noun><role> pattern. e.g

As far as AMQP is converned, what are the roles?

  • Publisher, Queue, Message...

SWIM-SERV-250 SWIM TI Profile and interface bindings

The best practice could be a link to ... specifications to header/content-type information (e.g. AMQP header information to encoding, message-annotation etc.)

Code Block
languagejs
titleExample of SWIM-SERV-250 using Service Metadata Schema
"serviceInterface": [{
 "serviceInterfaceBinding": {
  "name": "SWIM_TI_YP_1_1_AMQP_MESSAGING",
  "description": "..."
 }
}


SWIM-SERV-270 Service operations

A harmonised entry for AMQP delivery. Consider a controlled vocabulary of verbs for names.

SWIM-SERV-280 Service messages

The following example shows how to document the service message.

Code Block
languagejs
titleExample of SWIM-SERV-280 using Service Metadata Schema
"serviceInterface": [{
 "messages": [{
  "name": "AMQP message body",
  "description": "The AMQP message body contains the OPMET data in IWXXM3.0",
  "schema": {
   "url": "https://schemas.wmo.int/iwxxm/3.0.0/"
  }
 }],
...
}]