Top Banner
Data dictionary, domain modelling and how to make things easy Passenger Terminal Conference 2014 2014-03-26 Barcelona, Spain [email protected] Data dictionary, domain modelling and how to make things easy Passenger Terminal Conference 2014
17

Data dictionary, domain modelling and making things easy

Jun 19, 2015

Download

Technology

Lockheed-Martin

Ole Nymoen of Norwegian airport operator looks at how a common data language can provide a framework for easier airport-to-airport integration. Ole is the technical architect for Avinor's multi-airport operational database project, centralising all operational platforms for 46 airports in to a single instance.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data dictionary, domain modelling and making things easy

Data dictionary, domain modellingand how to make things easyPassenger Terminal Conference 20142014-03-26Barcelona, Spain

[email protected]

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 2: Data dictionary, domain modelling and making things easy

Ole Nymoen

• Owns 46 airports • 46 million passengers• 814.000 movements• 9 billion NOK operating

income• We are Norway (almost)

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Avinor

• 32+ years in IT• Operations, developer,

it-architect

Page 3: Data dictionary, domain modelling and making things easy

The chalenges

• New Airport Operational DataBase (AODB)• New vendor• Integrations• Understanding each other• Different terminology • Missing documentation• …

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 4: Data dictionary, domain modelling and making things easy

The solution (to some of it)

• Define a new common language (data dictionary)• Define data models that fits the domain• Mandate their use “everywhere”

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

But

• Keep it simple• Be pragmatic• Ok to spend some time up front if it saves time later

• No magic, no rocket science, easy to use, good documentation

Page 5: Data dictionary, domain modelling and making things easy

Data dictionary – what and why

• “What is a data dictionary” – Google it ;-) • Many things to many people

• Definition of terms

• One “thing” – one term and one definition

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 6: Data dictionary, domain modelling and making things easy

Data dictionary - how we made it

• Bottom up• In cooperation with vendor• Avinor and vendor had “all+++” terms already

• Often very loosely documented• Defined by usage in different

contexts

• Needed to be precisely defined

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 7: Data dictionary, domain modelling and making things easy

Data dictionary – what we made

• About 300 terms defined• Instantiated in XML

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 8: Data dictionary, domain modelling and making things easy

Data dictionary - examples

ACGT Actual Commencement of Ground Handling Time. The time when ground handling on an aircraft starts, can be equal to "AIBT" (to be determined locally). Always UTC time.

datetime

AcdmStatus A-CDM (Airport Collaborate Decision Making) status codes. Planning phase: - SCH Scheduled- INI Initiated Arrival phase:- AIR Airborne- FIR Flight entered local FIR- FNL Final- ARR Landed Ground phase: - IBK In-Block- BRD Boarding - RDY ReadyDeparture phase: - OBK Off-Block- RDI Ready for de-icing- DEI De-icing in progress - DEP Departedramp

string(4)

AircraftBearing The direction the aircraft is flying. Legal values are 0 - 359 (inclusive and clockwise) and is given relative to magnetic north.

integer

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 9: Data dictionary, domain modelling and making things easy

Data dictionary - examples (the last)

AircraftChapter Aircraft chapter code. Defines an aircraft type in terms of its certificated noise level. For example, chapter 2 aircraft are characterised by the noisier, low bypass turbofan aircraft and early high bypass turbofan aircraft; chapter 3 aircraft are characterised by the modern, quieter, high bypass turbofan aircraft; chapter 4 aircraft are aircraft which are likely to have previously been classified as chapter 3 but are deemed to have met even more stringent standards. Note: chapter 1 is not an official classification but is / was sometimes used to indicate excessively noisy (e.g. older) aircraft, for example Concorde. Allowable values defined in aircraft chapter reference data table.

string(4)

WakeTurbulenceCategory

The ICAO wake turbulence category is based on the maximum certificated take-off mass, as follows:- L (Light) aircraft types of 7 000 kg (15 500 lb) or less.- M (Medium) aircraft types less than 136 000 kg (300 000 lb) and more than 7 000 kg (15 500 lb)- H (Heavy) aircraft types of 136 000 kg (300 000 lb) or more- J (Super Heavy) for Airbus A380-800 and other of this size.

string(1)

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 10: Data dictionary, domain modelling and making things easy

Where are the Data Dictionary used?

• Domain models• Integrations (canonical format)• Interfaces• Databases• Spoken language

• Use them everywhere!

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 11: Data dictionary, domain modelling and making things easy

Domain model – what is that?

• Another “many things to many people”• At the end of the day – data structures defining the

interesting things in your domain• Creates order, impose structure

• Initially our domain are flight related information

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 12: Data dictionary, domain modelling and making things easy

«All» about a flight leg (for integration)class FlightLegData - main entities

«XSDcomplexType»FlightLegData

+ flightLegIdentifier :FlightLegIdentifier+ aircraftData :AircraftData [0..1]+ passengerData :PassengerData [0..1]+ departureData :DepartureData [0..1]+ arrivalData :ArrivalData [0..1]+ chargeBorderCrossing :ChargeBorderCrossing [0..*]+ codeShareData :CodeShareData [0..*]+ operatingAirlineIATA :AirlineIATA [0..1]+ operatingAirlineICAO :AirlineICAO [0..1]+ operatingAirlineTicketed :AirlineIATAorICAO [0..1]+ fl ightLegStatus :FlightLegStatus [0..1]+ acdmStatus :AcdmStatus [0..1]+ fl ightServiceTypeIATA :FlightServiceTypeIATA [0..1]+ fl ightServiceTypeICAO :FlightServiceTypeICAO [0..1]+ fl ightServiceTypeExtended :FlightServiceTypeExtended [0..1]+ fl ightIsMultiLeg :boolean [0..1]+ militaryFlightOwner :MilitaryFlightOwner [0..1]+ numberOfAircraft :Count [0..1]+ nextInformationTime :DateTimeUTC [0..1]+ remark :Remark [0..*]

«XSDcomplexType»FlightLegIdentifier

+ ifplid :IFPLID [0..1]+ callsign :Callsign [0..1]+ aircraftRegistration :AircraftRegistration [0..1]+ ssrCode :SSRCode [0..1]+ fl ightId :FlightId [0..1]+ fl ightDepartureDate :DateUTC [0..1]+ departureAirportIATA :AirportIATA [0..1]+ arrivalAirportIATA :AirportIATA [0..1]+ departurelAirportICAO :AirportICAO [0..1]+ arrivalAirportICAO :AirportICAO [0..1]

«XSDcomplexType»AircraftData

+ aircraftOwnerIATA :AircraftOwnerIATA [0..1]+ aircraftOwnerICAO :AircraftOwnerICAO [0..1]+ aircraftIATAType :AircraftIATAType [0..1]+ aircraftICAOType :AircraftICAOType [0..1]+ aircraftSeatingCapacity :Count [0..1]+ aircraftSeatingAvailable :Count [0..1]+ aircraftTailNumber :AircraftTailNumber [0..1]+ aircraftConfigVersion :AircraftConfigVersion [0..1]+ crewActiveOnBoard :Count [0..1]+ crewPassiveOnBoard :Count [0..1]+ baggageData :BaggageData [0..1]+ cargoData :CargoData [0..1]+ aircraftMTOW :Kilo [0..1]+ aircraftNumberOfEngines :Count [0..1]+ aircraftEngineType :AircraftEngineType [0..1]+ aircraftHorsePower :HorsePower [0..1]+ aircraftThrust :KiloNewton [0..1]+ aircraftNOx :Gram [0..1]+ aircraftChapter :AircraftChapter [0..1]+ aircraftIsNoiseCertificated :boolean [0..1]+ wakeTurbulenceCategory :WakeTurbulenceCategory [0..1]

«XSDcomplexType»PassengerData

+ paxAdultOnBoard :Count [0..1]+ paxChildOnBoard :Count [0..1]+ paxInfantOnBoard :Count [0..1]+ paxSeatedOnBoard :Count [0..1]+ paxTransit :Count [0..1]+ personsOnBoard :Count [0..1]

«XSDcomplexType»CodeShareData

+ codeShareFlightNumber :FlightNumber+ codeShareAirlineIATA :AirlineIATA [0..1]+ codeShareAirlineICAO :AirlineICAO [0..1]+ codeShareAirlineTicketed :AirlineIATAorICAO [0..1]

«XSDcomplexType»ArrivalData

+ arrivalSecurityIndicator :AirportSecurityIndicator [0..1]+ handlerArrival :HandlerData [0..*]+ aircraftParkingPosition :AircraftParkingPosition [0..1]+ fl ightStopIsTechnical :boolean [0..1]+ paxCanDisembark :boolean [0..1]+ paxBusIsNeeded :boolean [0..1]+ runwayArrival :Runway [0..1]+ mttt :duration [0..1]+ ettt :duration [0..1]+ eldt :DateTimeUTC [0..1]+ eldtAccuracy :EstimatedTimeAccuracy [0..1]+ tldt :DateTimeUTC [0..1]+ aldt :DateTimeUTC [0..1]+ sibt :DateTimeUTC [0..1]+ eibt :DateTimeUTC [0..1]+ aibt :DateTimeUTC [0..1]+ exit :duration [0..1]+ axit :duration [0..1]+ acgt :DateTimeUTC [0..1]+ aegt :DateTimeUTC [0..1]+ aght :duration [0..1]+ arrivalDelay :Delay [0..*]

«XSDcomplexType»DepartureData

+ departureSecurityIndicator :AirportSecurityIndicator [0..1]+ fl ightDIIndicator :DIIndicator [0..1]+ fl ightRule :FlightRule [0..1]+ handlerDeparture :HandlerData [0..*]+ aircraftParkingPosition :AircraftParkingPosition [0..1]+ fuelRampRequested :Kilo [0..1]+ paxCanEmbark :boolean [0..1]+ checkInData :CheckInData [0..*]+ gateData :GateData [0..*]+ paxBusIsNeeded :boolean [0..1]+ runwayDeparture :Runway [0..1]+ asbt :DateTimeUTC [0..1]+ asrt :DateTimeUTC [0..1]+ tsat :DateTimeUTC [0..1]+ asat :DateTimeUTC [0..1]+ ardt :DateTimeUTC [0..1]+ sobt :DateTimeUTC [0..1]+ eobt :DateTimeUTC [0..1]+ tobt :DateTimeUTC [0..1]+ aobt :DateTimeUTC [0..1]+ erzt :DateTimeUTC [0..1]+ arzt :DateTimeUTC [0..1]+ eczt :DateTimeUTC [0..1]+ aczt :DateTimeUTC [0..1]+ eezt :DateTimeUTC [0..1]+ aezt :DateTimeUTC [0..1]+ edit :duration [0..1]+ adit :duration [0..1]+ ctot :DateTimeUTC [0..1]+ etot :DateTimeUTC [0..1]+ ttot :DateTimeUTC [0..1]+ atot :DateTimeUTC [0..1]+ exot :duration [0..1]+ axot :duration [0..1]+ departureDelay :Delay [0..*]+ returnToRampTime :DateTimeUTC [0..1]

«XSDcomplexType»ChargeBorderCrossing

+ nextChargingArea :ChargingArea [0..1]+ previousChargingArea :ChargingArea [0..1]+ position4D :Position4D [0..1]

10..*

1

0..1

10..11 0..1

11

1 0..1

1

0..*

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 13: Data dictionary, domain modelling and making things easy

XML definitions

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 14: Data dictionary, domain modelling and making things easy

Integrations

• Why all the fuss – integrations are easy and fun. But require:• Clearly defined responsibility• Well documented data and business rules• Good architecture

• Why do we often end up with the thing on the right?

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

Page 15: Data dictionary, domain modelling and making things easy

Integrations done «right»

• Common data format• Transformations done at the edges – NOT in the middle

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

cmp Integration done right

Messaging infrastructure, canonical data formats

System A System B System C

Sys A Connect Sys B Connect Sys C Conenct

Page 16: Data dictionary, domain modelling and making things easy

The takeaway

• It takes a lot of work to create a good data dictionary anddomain model

• Do it and use them everywhere!

• Having a data dictionary andgood data definitions is magic

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

The one with a good DD

Page 17: Data dictionary, domain modelling and making things easy

Thank you

Data dictionary, domain modelling and how to make things easyPassenger Terminal Conference 2014

[email protected]

• Questions?