Ongoing discussions within the SWIM communities of interest

Page tree

Versions Compared

Key

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

Excerpt Include
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-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-270 proposes <verb><noun> e.g.getAlerts; requestTrajectoryAnalysis; publishAirportMETInducedCapacity; setCoordinationAndTransferData; proposeARESDeActivation.

Which verbs are best in the context of AMQP?

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/"
  }
 }],
...
}]

Adding the reference

Info

There is no need to mention the use of AMQP as part of SWIM-SERV-120 Service standard reference. It is more concerned with service definitions produced by the various ATM communities.

However, a service standard listed as part of SWIM-SERV-120 may include statements on the use of AMQP. In that case, any deviations from the service standard should be noted.

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

Code Block
languagejs
titleExample of references using Service Metadata Schema
"references": {
 "serviceDocument": [{
  "documentType": "PROTOCOL_SPECIFICATION",
  "title": "Advanced Message Queuing Protocol (AMQP)",
  "version": "1.0",
  "description": "The Advanced Message Queuing Protocol (AMQP) is an open internet protocol for business messaging.",
  "reference": {
	"url": "https://www.amqp.org/"
  }
 }
 ]
}