370 likes | 390 Views
ARINC 424 Business Rules An introduction. Pulsar Consulting sa Avenue Pasteur, 17 1300 Wavre Belgium Tel : +32 10 43 51 00 Fax : +32 10 43 51 01 Web: www.pulsar.be. Introduction. Goal of this presentation:
E N D
ARINC 424 Business RulesAn introduction Pulsar Consulting sa Avenue Pasteur, 17 1300 Wavre Belgium Tel : +32 10 43 51 00 Fax : +32 10 43 51 01 Web: www.pulsar.be
Introduction Goal of this presentation: To give an overview of the work of translating relevant ARINC 424 rules into AIXM Business Rules
Outline • Introduction • Who we are • Business Rules • XML Schema • SBVR + samples • Maybe, if enough time • Schematron • The project • Q & A
Who we are Pulsar Consulting S.A. • 12 years - 30 people • ATM Dept. • 10 years – 15 people • Including AIXM group (10 people) • Technologies • Java, .NET, C#, … • Oracle, MySQL, … • Apache/ Tomcat, … www.pulsar.be Contact: Tudor Ivanov – Director tiv@pulsar.be
Business Rules • What are business rules? • A Business rule is a statement that defines or constrains some aspect of the business. […] [Wikipedia] • Why do we need business rules? • To express rules to validate data • To complement AIXM XML Schema :
XML Schema • XML (Extensible Markup Language) is a set of rules for encoding documents in machine-readable form. [Wikipedia] • Used to exchange AIXM data between computerized systems • A few reasons to use XML: • Computer-readable as well as human-readable • Very popular • Widely adopted • Well known and well supported by many tools • Platform-independent • Can be edited by hand using any basic text editor even Notepad or equivalent • …
XML Schema (cont’d) • An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. [Wikipedia]
XML Schema (cont’d) • Samples from AIMX XML Schema • aixm:StandardInstrumentArrival • Can have at most one of the following: navaid, radar or specialNavigationSystem • Time slice possible types: • aixm:interpretation allowed values: BASELINE, TEMPDELTA, PERMDELTA, SNAPSHOT
XML Schema (cont’d) • An example of rule out of the scope of XML Schema • Except the first leg that must be an IF, final approach of NDB based approach must be coded only with TF and CF
SBVR Definition • The Semantics of Business Vocabulary and Business Rules (SBVR) is an adopted standard of the Object Management Group (OMG) intended to be the basis for formal and detailed natural language declarative description of a complex entity, such as a business. • SBVR is intended to formalize complex compliance rules, such as operational rules for an enterprise, security policy, standard compliance, or regulatory compliance rules. Such formal vocabularies and rules can be interpreted and used by computer systems. SBVR is an integral part of the OMG’s Model Driven Architecture (MDA) [Wikipedia]
SBVR (cont’d) • SBVR in simple words • SBVR is a specification of how to define your own notation for writing business rules.
SBVR (cont’d) • SBVR benefits • Makes business rules less ambiguous than in natural language • Helps fill in the gap between day-to-day language and AIXM data model • Opens the way to automation (see Schematron)
SBVR (cont’d) Characteristics of SBVR-compliant business rules • Rules are less ambiguous, more detailed • Rules are less natural than… natural languages • Rules are similar in form • Rules are verbose • Rules sounds more “artificial”, less “natural” • Rules are closer to AIXM Data Model
Sample Business Rules • English The last leg of a Final Approach Transition must be ‘CF’, ‘RF’ or ‘TF’. • SBVR Each ProcedureTransition that has a type equal to ‘FINAL’ and at least one InstrumentApproachProcedure.codingStandard equal to ‘ARINC_424_19’ must have at least one ProcedureTransitionLeg[last].legTypeARINC equal to ‘CF’, ‘RF’ or ‘TF’.
Sample Business Rules • English If first leg of missed approach is HA or HM, altitude1 must be provided • SBVR Each ProcedureTransition that has a type equal to 'MISSED', 'MISSED_S' or 'MISSED_P‘ and at least one InstrumentApproachProcedure.codingStandard equal to 'ARINC_424_19‘ and exactly one ProcedureTransitionLeg[1].legTypeARINC equal to 'HA' or 'HM’ must have an upperLimitAltitude
Sample Business Rules • English TF leg is preferred to CF leg type in RNAV Terminal Procedures that are not using ground-based navaid references. • SBVR Each ProcedureTransition that has a RNAV equal to 'YES' and at least one [...].codingStandard equal to 'ARINC_424_19‘ and no guidanceFacility_navaid and no guidanceFacility_specialNavigationSystem.type equal to 'DECCA', LOCANA', 'LOCANC' or 'LOCAND‘ should have at least one ProcedureTransitionLeg. legTypeARINC equal to 'TF'
Sample Business Rules – Conclusion • The last leg of a Final Approach Transition must be CF, RF or TF. • If first leg of missed approach is HA or HM, altitude1 must be provided. • TF leg is the preferred to CF leg type in RNAV Terminal Procedures that are not using ground-based navaid references. => Each object O that satisfies conditions C1, C2 ,…and Cn must also satisfy condition Cx
Sample Business Rules – Conclusion • Bonus of using a formalism • Detection of redundancy • Exactly same rules • Detection of generic rules • A generic rule is applicable in different contexts • Each entity that has a dateMagneticVariation must have a magneticVariation”. • Detection of patterns • Different rules with the same structure • Each ${entity} that has a ${property} must have ${property}.uom
Schematron • What • In markup languages, Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. [Wikipedia] • Why • Proof of concept of business rules automation
Schematron (cont’d) Schematron characteristics: • Declarative • Extensible • Expressiveness • Tricky • Verbose – sometimes hard to read
Schematron (cont’d) not(./parent::*/parent::*/aixm:codingStandard = 'ARINC_424_19') or not((./aixm:type='MISSED' or ./aixm:type='MISSED_P' or ./aixm:type='MISSED_S') and ./parent::*/parent::aixm:InstrumentApproachProcedureTimeSlice) or not(saxon:evaluate(arcext:getXPath((./aixm:transitionLeg/aixm:ProcedureTransitionLeg/aixm:theSegmentLeg)[1]/@xlink:href))/*/*[aixm:legTypeARINC = 'HA' or aixm:legTypeARINC = 'HM']) or saxon:evaluate(arcext:getXPath((./aixm:transitionLeg/aixm:ProcedureTransitionLeg/aixm:theSegmentLeg)[1]/@xlink:href))/*/*[aixm:upperLimitAltitude]
References & Resources • NDBX business rules for AIXM5.0 • ARINC424-19 specifications • AIXM 5.1 Wiki • Business Rules Manager • ARC-Web • Pulsar SBVR specifications • Experts from EUROCONTROL and Pulsar
Results • ARINC 424 Rules • 229 NDBX rules => • 236 AIXM 5.1 rules • Including 164 SBVR rules • And 157 Schematron rules
Results (cont’d) • AIXM Business Rules Database contains more than • 1700 records • 1400 rules before generation • 2100 rules after generation • 40 templates • 1100 rules with SBVR and Schematron
Q & A Questions?