Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
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:
- https://reference.swim.aero/technical-infrastructure/guidance-for-pub-sub-push-implementation.html
- https://reference.swim.aero/technical-infrastructure/binding-selection-guidelines.html
The issue of topics has been discussed in the FAQ. See:
Documenting its use
Info | ||
---|---|---|
| ||
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 | ||||
---|---|---|---|---|
| ||||
"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
- TurbulenceForecastPublisher for https://eur-registry.swim.aero/services/dwd-turbulence-amqp-10
- ArrivalSequenceInformationPublisher for https://eur-registry.swim.aero/services/dsna-arrivalsequencedistribution-service-v11 (not AMQP but shows the same pattern for names).
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 | ||||
---|---|---|---|---|
| ||||
"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 | ||||
---|---|---|---|---|
| ||||
"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 | ||||
---|---|---|---|---|
| ||||
"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/" } } ] } |