RMS API Reference

ARIS/SmartBus® Communication Middleware for Toronto’s Lester B. Pearson International Airport Greater Toronto Airport Authority

1. General considerations


Generally, there is a split between Reference data and Operational data.

The Reference and Operational services each have a dedicated underlying cache table. These store the pre-formatted XML messages, and indexed values for querying.

The application/controller ARIS/REF and ARIS/OPS respectively.

The arguments for each function take two forms

/key
?arg1=v1?arg2=v2 …

Result sets

XML returned by REST service are the same messages posted to ESB.

Results are returned in the form of sets such as






For the various message types, the count and average length are as follows

APT 10000 550
AL 5000 700
ACT 500 450
ACR 25000 350
RSC 5000 350
FL 2000/day 500
RA 2000/day 500

In order to accommodate large result sets, “reply chunking” is provided.

  • First GET returns first chunk
  • Remaining chunks available using ?MORE=Y
  • Client can receive “all” records by using ?ALL=Y then looping with ?MORE=Y until all records have been sent from the cache.
  • Chunking is enabled for all queries, but impacts only those that return a large number of records.
  • Chunk size currently set to 2000 (to accommodate an operational day)

As of this release, there is one cache per web session. So, the sequence ALL airports followed by ALL airlines followed by /APT?MORE=Y, in the same session, will give the next chunk of Airlines.
However, two separate sessions will not step on each other’s cache
It would be straightforward to create one cache per message-type if the need arises, or if the benefit is clear. At this time the goal is to support an easy way for client to suck over a lot of records, not long-lived caching.

 

 

Result set sortation


1. By Key when using ?ALL or ?MORE
2. By Update Seq# otherwise (required by Wipro, reason unclear)

 

 

 

 

Common arguments

?UpdSeqGt= Update sequence number greater than

?UpdTmGt= Update time greater than
The Update Seq originates with sequence that is used when the underlying record is modified, rather than a sequence which is dedicated to the message generation. This facilitates tracking mods end-to-end.

The Update Time originates with sysdate when the underlying record is modified, or in the case of sync/initialization that sysdate of that operation. This facilitates tracking mods end-to-end.

For reference data, a requirement was given to combine arguments with UpdTm. The use-case may not be obvious, but does allow one to say: given me message for this object if it has changed since some time T.

There is no explicit UpdTm=ALL, but providing no UpdTmGt is equivalent.

Datetime arguments


Flexibility is provided for specifying “datetime” arguments. Formats include:
ISO-8601
YYYYMMDDHHMISS
YYYYMMDDHHMI
YYYYMMDDHH
YYYYMMDD
YYYYMM
YYYY
D+n/D-n where D= today, n=hours
H+n/H-n where H=now, n=hours

 

2 Reference Data

 

2. 1 Airport


ARIS/REF/APT/
Key: primary code in ARIS, exact match. (e.g. YYZ)
?Name= ARIS full_name, start-match (e.g. Tor matches Toronto)
?AltCode= alternate code in ARIS (typically ICAO)

Combination: UpdTmGt + Key

Samples:
REF/APT/YYZ
REF/APT?Name=Tor
REF/APT?AltCode=CYYZ
REF/APT?UpdSegGt=1000
REF/APT?UpdTmGt=20181101
REF/APT/YYZ?UpdTmGt=20181101

 

 

2.2 Airline


ARIS/REF/AL/
Key: primary code in ARIS, exact match. (e.g. ACA) ?AltCode= alternate code in ARIS (typically 2-char) ?PrefTerm= ARIS airline_type_extra

Combination: UpdTmGt + Key, AltCode, PrefTerm

Samples:
REF/AL/ACA
REF/AL?PrefTerm=3
REF/AL?AltCode=AC
REF/AL?UpdSegGt=1000
REF/AL?UpdTmGt=20181101
REF/AL/ACA?UpdTmGt=20181101
REF/AL?PrefTerm=3&UpdTmGt=20181101

 

 

2.3 Aircraft (Fleet)


ARIS/REF/ACR/
Key: primary code in ARIS, exact match. (e.g. C-ABCDE) ?Owner= ARIS aircraft. owner (typically 3-char) ?Tail= ARIS aircraft. Tail_number
?UpdSeqGt= Update sequence number greater than:
?UpdTmGt= Update time greater than

Combination: UpdTmGt + Owner

Sample
REF/ACR/C-ABCDE
REF/ACR?Owner=ACA
REF/ACR?Tail=BCDE
REF/ACR?UpdSegGt=1000
REF/ACR?UpdTmGt=20181101
REF/ACR?Owner=ACA&UpdTmGt=20181101

 

 

2.4 Aircraft Type

ARIS/REF/ACT/
Key: primary code in ARIS, exact match. (e.g. 788) ?AltCode= ARIS aircraft_subtype .alt_code (typically 4-char) ?Config= ARIS aircraft_subtype .config (not used) ?UpdSeqGt= Update sequence number greater than: ?UpdTmGt= Update time greater than

Combination: UpdTmGt + Key, AltCode

Sample
REF/ACT/788
REF/ACT?AltCode=B788
REF/ACT/788?UpdTmGt=20181101

 

 

2.5 Airport Resources


ARIS/REF/RSC/
?Type= STAND, GATE, BELT_RC, BELT_MU, DESK
?Term=
?Name=
?Area= Pier for Stand/Gate, Area for Desk ?UpdSeqGt= Update sequence number greater than: ?UpdTmGt= Update time greater than

Combination: UpdTmGt + Term

Sample
REF/RSC?Name=
REF/RSC?Type=STAND
REF/RSC?Term=3&UpdTmGt=20181101

 

3 Operational Data

 

3.1 Flight Leg

Queries are based on FlightDate or STx at YYZ These are expressed as intervals with a start and window length

Aside from FlightDate/STX, args can be combined as you will.

ARIS/OPS/FL

OPS/FL?FlDate=x&Days=n # default 1 day

OPS/FL?StxS= # Start, default H-1 OPS/FL?StxW= # Window, hours, default 26

OPS/FL?Fid= OPS/FL?Al= OPS/FL?AlAlt= OPS/FL?Sect= OPS/FL?Term= OPS/FL?Stat=

# flight ID, e.g. ACA100
# e.g. ACA
# e.g. AC
# D/I/T/t
# Tn or just n
# the pub-code 3-char set
OPS/FL?Rte=
OPS/FL?AD=
OPS/FL?Orig=
OPS/FL?Dest=
# Route (includes VIA)
# A or D
# equivalent Rte+ AD=A
# equivalent Rte+ AD=D
For these arguments, omission=ALL. For example, omit
?Term
same as
Term=ALL

Sample
/OPS/FL?StxS=x1&StxW=x2&AD=A&Term=3&Sect=I&Al=WJA
/OPS/FL?FlDate=x1&Days=1&AD=A&Term=3&Sect=I&Al=WJA

 

 

3.2 Resource Allocation



ARIS/OPS/RA
Same arguments as FL, “Type” argument in testing at the moment