SlideShare a Scribd company logo
1 of 30
ZVIS—A Financial System in Ada
AdaCore Tech Days
Stéphane Barbey, PhD
1 October 2015
About Paranor
1/10/2015 ZVIS—A Financial System in Ada 2
Founded in 1978
35 Employees
PhD/Msc/Bsc
Individual Software
Development
Modernization
Consulting
High Standards
Model Based
Approaches
DSLs
Offices in
Wahlendorf (CH)
Stansstadt (CH)
Cebu (PH)
Finance
Public
Administration
Transportation
Energy
Communications
Continuous
innovation
state-of-the-art
methods
and technologies
1/10/2015 ZVIS—A Financial System in Ada 3
Dear customers,
Thank you for
making us richer!
Ada
ZVIS—Payment Transactions
• Central platform for payment processing, customer and account
• KUDA—Customer database (addresses, cards, checks, special
services, …)
• KOBE—Account handling, booking engine
• Sybase / Oracle DB, VMS / Linux, Ada / DSLs
1/10/2015 ZVIS—A Financial System in Ada 4
Some Numbers
• 4.5 million accounts
• 1000 multiple secure business transactions per second
• more than 1.6 billion transactions annually
• > 100 billion CHF Assets
• > 2,000 users
• > 20 peripheral systems
1/10/2015 ZVIS—A Financial System in Ada 5
A brief history of ZVIS
1993
Start
1996
Operation
2002
Gnatification
DecAda to
Gnat
2004
Migration
Kobe
•VMS to Linux
•Sybase to
Oracle
2015
Migration
Kuda
•VMS to Linux
•RDB to Oracle
1/10/2015 ZVIS—A Financial System in Ada 7
1 Million
lines of
code
4 Millions
lines of
code
Technical Modernization
Innovation & Maintenance
1/10/2015 ZVIS—A Financial System in Ada 8
>4 millions
lines of Ada
And not just Ada
Architecture
HICHuman Interaction Component
GUI
TMCTask Management Component
Interface / Service Choreography
PDCProblem Domain Component
Business Logic, µ-Services
DMCData Management Component
Persistence / Database Access
Subjects
Business areas / DomainsServices
Tiers
1/10/2015 ZVIS—A Financial System in Ada 9
Reliability & Availability
• Two instances of KUDA; Run in two locations
• Each location has two fully redundant systems
• One system is active,
• The other is hot-standby
• Switch over possible any time
• Active to Standby (within location, automatic switch)
• One location -> other location (disaster recovery, quick but not
automatic)
1/10/2015 ZVIS—A Financial System in Ada 10
Scalability and Performance
1/10/2015 ZVIS—A Financial System in Ada 13
GUI GUI GUI GUI GUI GUI
Network
Network
RDMBS
Database
HIC
TMC
PDC
DMC
DB API
PDC
AuthShell
R W S
DB API
PDC
AuthShell
R
DB API
AuthShell
PDC
R W
DB API
PDC
AuthShell
R W S R
OS
Process
Database
Replication
1/10/2015 ZVIS—A Financial System in Ada 15
KUDA
HOTSTANDBY
PUBSTV
HOTSTANDBY
PUBLISH
HOTSTANDBY
KUDADWH
HOTSTANDBY
SNAP
HOTSTANDBY
PUBSTV
PUBLISH
KUDADWH
SNAP
JCC pubstv
JCC jourdwh
JCC kudadwh
JCC publish
JCC stvsnap
JCC pubsnap
KOBE
EAI
PEDA-S
PUBSUB Mining
KUDA Zentral
KUDA ReadOnly
PUBSTV Mining
Why Ada
• Readability—Over 20 years and generations of developers
• Data Abstraction—Encapsulation, better interfaces to business
• Strong Type Checking—Avoid misuse of types
• By Value & By Reference—Easy memory management, improves
reliability, deterministic performances
• Separation of concerns—Spec vs Body
• Overloading—Clarity, Unified naming
• Exceptions—Propagated over layers & processes, no status code
• Interface to other languages—To and from Ada
• Automatic compilation—No convoluted makefiles
• Portability—VMS, Linux
1/10/2015 ZVIS—A Financial System in Ada 17
1/10/2015 ZVIS—A Financial System in Ada 21
>4 millions
lines of Ada
Focus on
Maintenance
Why Not Ada
• A general-purpose programming language
• Not the language of Business
• Much boilerplate
Solution
• Modeling
• Code generation (Ada)
• Use of DSL
1/10/2015 ZVIS—A Financial System in Ada 22
18 DSLs
Cover many aspects of the software:
• Primitive types, enumerations, exceptions
• Database model
• Non CRUD Operations
• EAI Service Definitions
• Web services
• Extensive tool-chain
1/10/2015 ZVIS—A Financial System in Ada 23
1/10/2015 ZVIS—A Financial System in Ada 25
Primitive Types
• Database columns and Ada record components must have the
same type
• Different representations / Null values
• E.g. for numbers, Zero is not Null
• Constraints (domains)
• Runtime Checks
• Avoid Misuse
• Strong typing in the database and in Ada
1/10/2015 ZVIS—A Financial System in Ada 26
Enumeration Types
• Different kind of primitives
• Additional information
• Associated text, translated in “four” national languages
• UI Information (menus, visibility, …)
• Used in all layers (GUI, Business logic, Database)
• Stored in the Database
• Generate Ada, SQL, Motif, Documentation, …
1/10/2015 ZVIS—A Financial System in Ada 28
Database
• Graphical and textual editors
• Class diagrams, incl. database rules
• Mapping of columns to primitive types
• Generate database schema
• Generate database bindings and access code
• Define and generate primitive types
• Generate CRUD and non-CRUD operations
1/10/2015 ZVIS—A Financial System in Ada 29
1/10/2015 ZVIS—A Financial System in Ada 30
Sparkasse
0,m
BenutzerPortefeuille
ZinsLimSoll
0,m
1
Kreditlimit
Herkunft
GueltigBis
GueltigAb
Gueltig
PortefeuilleZV
DienststelleKey
BenutzerNr
PortefeuilleOID
PersonZuPortefeuille
PortefeuilleOID
PersonZuPortefeuilleOID
GDOVersion
PersonOID
Portefeuille
Ansprechperson
Betreuer
GDOVersion
PortefeuilleOID0,m
0,m
SparKonditionKundenstamm
KundenGruppe
MarktSegment
KundenstammTyp
TaTaxBetrag
TaAnzahl
RueckzugSatz
RueckzugLim
RueckzugFrist
GueltigBis
GueltigAb
LohnKonto
AktionsNummer
AbschlussDatum
PersonalNr
Ortscode
KredAvisParamKonto
0,2
1 DokutypListe
AdressverwendungOID
BetragDarstellungArt
AuslieferungsNr
FehlerAvisEinmalig
0,1
KredAuftragAvisKonto
0,1
0,1
1
0,2
1
PreisDetail
KredAuftragAvisKontoKey
IoMediumEinzelBest
FehlerAvisEinmalig
GueltigAbDatum
BetragDarstellungArt
IoMediumAusfuehrungsBest
FunktionsTyp
DokutypListe
IoMediumAuftragsBest
ZinsSatzHaben
1,m
0,1
1,m
0,1
MindestZinsSatz
Limite
LeitzinsArt
Laufzeit
ZinsSatz
ZinsIndex
AbschlagZinsSatz
ZinsSatzHabenKey
1
ZinsKondSoll
SollZinsSatz
ZinsKondKey
SollZinsKommission
GueltigBis
StartDatum
SollZinsBisKreditlimit
SollUsanz
GueltigAb
MindestKommission
ZinsKondPool
VstSatz
StartDatum
SollUsanz
RundungZinsSatz
Replicating
MitTreuHandVerzinsung
MitAoZinsabschluss
MinimalZinsSatzHaben
HabenUsanz
GueltigBis
GueltigAb
AutoUpdate
AbrnPeriode
MaximalZinsSatzSoll
SollZinsSatz
ZinsKondKontoArt
Replicating
SollZinsSatz
HabenZinsLim
ZinsKondKey
VstSatz
StartDatum
SollUsanz
HabenZinsSatz1
HabenZinsSatz0
HabenUsanz
GueltigBis
GueltigAb
AbrnPeriode
0,m
ZinsKondHaben
1
ZinsmodellGruppe
ZinsModell
Replicating
HabenUsanz
GueltigBis
GueltigAb
AutoUpdate
AbrnPeriode
RundungZinsSatz
MitAoZinsabschluss
StartDatum
ZinsKondKey
0,3
1
ZinsBonus
ZinsSatz
PromotionTage
PromotionGueltigBis
BonusArt
PromotionGueltigAb
ZFKonto
PostKontoNr
0,m
=> eRechnung
0,m
=> Waehrung
1
0,1
Vorlage
1,5
1
Sprache
MutationsDatum
FBData
0,m
VMR => 0,m
1
<= VMR
0,m
Vollmachtsregelung
=> Person1
0,1
Derived
from
0,1
<= Depot 0,1
=> Postkonto0,1
ZeichnungsRecht
ZeichnungsArt
Typ
Nummer
MutationsDatum
Legitimation
IstKontoinhaber
ErstellDatum
CopyPostkontoNr
BeziehungKey
VerzeichnisBezeichnung
5
1
Sprache
Bezeichnung
0,1
0,m
UtTaFreigrenze
0,10
1
UtTaFreigrenzeKey
TaGruppe
Manuell
Anzahl
Aktuell
<= UT
0,m
=> UT 0,m
UnternehmensTeil
Is HauptKnd Of
0,1
0,1
0,1
1
StatusDatumC
StatusDatumB
StatusDatumAF
StatusDatumAA
StatusDatum
Status
PricingTAZukunft
PricingTa
PricingPauschaleTa
PricingKontoFuehrung
PricingKontoAvis
PricingKategorieTa
PricingEA
PricingAvisTa
Preisbefreiung
PlzOrtAbgeleitet
Nr
MutationsDatum
Marktsegment
Kundensegment
Kundengruppe
BezeichnungSoundex
BezeichnungGross
BezeichnungAbgeleitet
Bezeichnung
0,m
SZAuftragDaten
KontoNr
ETeilnahmeNr
DatumZeit
AuftragsTypDetail
AuftragsTyp
AuftragsArtikel
AnzahlSet
StatistikArtikel
Datum
Artikelnummer
Anzahl
SparKonditionKontoArt
0,m
1
TaTaxBetrag
SparKondKey
RueckzugLim
RueckzugSatz
GueltigBis
GueltigAb
RueckzugFrist
TaAnzahl
0,1
0,4
0,4
0,m
<= Rekakonto0,m
0,m
PricingSetPromotion
TaxBefreiungBis
PromotionBis
<= PricingSet
0,m
PostKontoSaldo
Saldo
PostKontoNr
Datum
1
1,m PostKontoArt
1
0,m
UbzgLim
UbzgFrist
SicherheitsLim
ProduktArt
PostKontoTyp
PostKontoArt
MutationsDatum
Klasse
CheckInkassoLim
BADUbzgLim
0,m
0,m
0,m
0,m
0,m
0,m
Postkonto =>
0,m
0,m
0,m0,m
0,m0,m
0,m
0,m
0,1
0,1
0,m
0,m
0,m
0,m
0,m
0,m
0,m
0,1
0,1
0,m
0,m
0,m
Kto => 0,m
0,1
0,m0,m
0,m
0,1
0,m
1
0,1
0,m
1
0,1
0,m
1
0,1
0,m
0,1
0,1
1 0,1
PostKonto
1
1
AvisZusatz
1
Avis
1
Korresp
1
0,m
0,m
=> KS
1
Zugriffsklasse
VerzeichnisEintrag
VereinbarungrmEZAG
UeberzugArt
TAUModus
TauGsSummeNWE
TauGsModus
TauGsAnzahl
DDBerechtigung
StatusGrund
StatusDatum
Status
SepaCoreDDInfoVersandt
SepaB2BDDInfoVersandt
SDDBerechtigung
SaBruttoVerbuchung
Rechnungskreis
PromotionZinsGueltigBis
PromotionZinsGueltigAb
ProcolStatus
PostKontoNr
PostKontoKey
PersonalNrVermittlung
PersonalNrAbschluss
OrtscodeVermittlung
OrtscodeAbschluss
OhneUnterschrift
MutationsDatum
MitDeckungsPruefung
MitAListeDeckungsKontr
MFBRegel
LifeCycleStatusDatum
LifeCycleStatus
KurzBezeichnungFreitext
KurzBezeichnung
KontoBezeichnung
KeineSets
HerkunftTyp
HatRestsaldo
Haftentlastung
GroesstKonto
ExpressAuftErlaubt
EroeffnungDurch
ePaymentErlaubt
CplTaScreening
BezeichnungFreitext
BezeichnungAnschrift
BelegbildNacherfassung
BeitrittDatum
AustrittDatum
Aktennr
AbschlagZhlgTaxfrei
AbschlagZhlgTaxart
1
PoolTeilnahme
0,m
1
Verarbeitungsdatum
StatusGrund
StatusDatum
Status
MutationsDatum
DatumAustritt
DatumEintritt
GueltigBis
GueltigVon
MitDeckungspruefung
MitAnAbDisposition
IstHauptkonto
0,1
<= ZinsKondPool1
1,m
HauptKonto
0,1
TaxKonto1
ZinsKonto
0,1
Pool
Adresse1
MitVerzinsung
Sprache
StatusGrund
StatusDatum
MitAnAbDisposition
EroeffnungsDatum
ListeNurPoolmanager
Status
SaldoreportGueltigAb
Nr
DeckungspruefungArt
MitDeckungspruefung
Bezeichnung
GueltigBis
GueltigVon
MutationsDatum
DagAbrufgruppe
Kontobezeichnung =>
0,m
PlzOrt
0,m 1
ZusatzZiffer
PlzOrtOID
Plz
Ort
Kanton
Geloescht
GDOVersionNr
Bezeichnung
Personal
0,m
1
Rolle
PersonalNummer
Arbeitgeber
Rechnungskreis
PersonalStatus
PersonalKey
0,1
Person
=> AV
0,1 0,m
1
Sprache
PersonTyp
PersonNummer
PersonKey
OrgBezeichnung
MandantId
GeloeschtPeDa
NogaCode
LifeCycleStatus
Kurzbezeichnung
GDOVersion
0,m
Pendenz =>0,m
0,m
0,m
Pendenz
Verantw.
1
0,1
Erledigungs
Benutzer
0,1
0,1
0,1
Erstell
Benutzer
1
Gesperrt
UebergabeDatum
Status
PostKontoNr
PendenzTyp
PendenzKey
ObjectKey
MutationsDatum
FBNummer
FaelligkeitsDatum
ErstellDatum
ErledigungsDatum
Bemerkung
PapierSpezifikation
Typ
PapierSpezKey
GroesseY
GroesseX
Gewicht
Farbe
0,m
0,1
PapierEinschub
Einschub
DruckerKey
Ortscode
OrtscodeOID
Ortscode
OrtLang
Ort
GDOVersion
0,m
1
NichtBezeichnung
LoeschDatum
NichtBezeichnungKey
MutationsDatum
LaufNr
Bezeichnung
<= Etrade0,m
<= eUsers0,m
NatuerlichePerson
ZusatzBezeichnung
Vorname
TodesDatum
TitelFreitext
Nationalitaet
NameZusatz
Nachname
Geschlecht
GeburtsDatum
AusbKondGueltigBis
Aufenthaltsbewilligung
Anrede
ModellGruppeReplicatingMap
Replicating
Gruppe
Modell
0,1
Land
<= DagDetails
0,m
SadLandCode
Land
ISOLandCode
0,1
ETN =>0,m
Betreuende
Region
0,m
Journal =>0,m
DLT =>0,m
Bestellung =>
0,m
Belongs to
0,m
0,1
1
0,1
KundenstammZV
0,1
VR
Vertrauenswuerdig
Sprache
IsKeyKunde
Promotion
PortefeuilleOID
MutationsDatum
KundenstammKey
KreditorDeckung
Hitangebote
0,1
<= Alisteelement
0,m
0,m1
1
0,1 Kundenstamm
1
0,1
1
ZugriffsKlasse
Werbesperre
DokumenteNichtEingescannt
Erfassungsdatum
Bezeichnung
GDOVersion
VerlustscheinVorhanden
Statusgrund
ErhoehtesFraudRisiko
Status
NogaCode
MarktSegment
KurzBezeichnung
Kundenstammtyp
IstGesperrt
KundenstammNr
KundenstammKey
KundenSegment
KundenNummer
KundenGruppe
HerkunftsOrtscode
Target
0,m
1
Source
0,m
1
KontoReferenz
ReferenzTyp
1,m
1
<= PlzOrt 1
KontoBezeichnung
ZusatzBezeichnung
VerzeichnisEintrag
PlzOrtAbgeleitet
MutationsDatum
LaufNr
KontobezeichnungKey
Bezeichnung
AnschriftGross
AnschriftAbgeleitet
Anschrift
0,m
1
0,m
KontoAktion
Datum
0,1
JournalFB
0,1
1
FBData
DummyDWH
0,m
JournalElementM1
1
0,m
Ursprung
Stichwort
Objecttyp
Objecttitel
MFromN
Journalkey
Erstelldatumzeit
Benutzer
0,m0,m
0,m
JournalElement
Betr. Dst0,1
Bearb. Dst0,1
1
ObjectTyp
ObjectTitel
ObjectKey
MFromN
MandantId
JournalKey
eTnNr
ErstellDatumZeit
Benutzer
JournalControl
LastUpdate
0,m
1
JournalAltNeu
Pos
NeuString
NeuInteger
NeuDateTime
AltString
AltInteger
AltDateTime
HICWindow
1
0,m
WindowName
Subjekt
Fenster
Applikation
HICWidget
WidgetTyp
WidgetName
ReadOnly
Ordering
Label
ErstellDatum
DatenhoheitDst
0,m
1
Gesellschafter
IstErsterGesellschafter
GesellschafterKey
GeloeschteKonti
PostkontoNr
FreieAListe
ErstellerNr
Bezeichnung
FormulareArtikel
0,50
1
1
Anzahl
1 FormbriefVerzeichnis
0,m
1
0,m
VerzeichnisKey
MutationsDatum
KapitelNr
FormbriefBezeichnung
5
1
Sprache
Bezeichnung
Formbrief
VorlageTyp
UsageList
PendenzVorhanden
Pendenztyp
Pendenzfaelligkeit
Nummer
Mutationsdatum
MitRNummer
MitPPVermerk
MitLogo
MitJournal
MitDigitalerUnterschrift
KundeVorhanden
FormbriefKey
BriefBeitritt
BeilageNummer
AusdruckHalbautomatisch
AusdruckAutomatisch
AnzahlKopien
AdressverwendungTyp
ExterneBezeichnungDetails
0,m
1
AuftragsId
0,m
1
ExterneBezeichnung
LetzterZugriff
Bezeichnung
ExterneBezNr
BenutzerName2
BezSaveCount
BenutzerName1
Aktiv
0,1
0,1
0,1
0,1
0,m
0,1
=> ESR
1
EsrBestellung
Zahlungsvermerk
TnNrDrucken
ReferenzNr
Preis
FormularArt
EigenesKonto
CodierzeileDrucken
BezeichnungFreitext
BezeichnungDrucken
Bezeichnung
Betrag
AnzahlKostenpflichtig
Anzahl
AnhangMitKontonr
Anhang4
Anhang3
Anhang2
Anhang1
1
EsrBestellCtrl
BezeichnungFreitext
BezeichnungDrucken
Bezeichnung
Betrag
Anzahl
AnhangMitKontoNr
Anhang4
Anhang3
Anhang2
Anhang1
ESBestellung
Waehrung
Schnitt
Mtlg4Flags
Mtlg4
ESAnschrift
EigenesKonto
Betrag
Anzahl
1
ESBestellCtrl
Mtlg4Flags
Mtlg4
Schnitt
EigenesKonto
Waehrung
Betrag
ESAnschrift
Anzahl
ErstBestellDatum
PostkontoKey
ErstBestellung
FormBriefNr
MitZAG
MitES
Marktsegment
ESAnschrift
Artikel
0,m
EnumerationType
0,1
0,m
1
0,m
Publish
Datenherr
EnumType
Klasse
EnumTypeKeyExtern
EnumTypeKey
EnumTypeExtern
Betrieb
EnumerationText
Sprache
MenuPosition
EnumTextKey
EnumText
1
0,4
EnumerationLit
Statusdatum
Status
Literal
Invisible
Id
GDOVersionNr
EnumLitKey
EGAParam
MitAuslandsGutschriften
PauschalTaxWaehrung
PauschalTaxBetrag
MitBelegBild
Losgroesse
EBGruppe
BankClearNr
Auslieferinfo
0,m
1
EBParam
VersandCodeGKAvis
VersandCodeEBAvis
PostKontoNr
GueltigAbDatum
GKAvisAdrVwdgOID
EBParamKey
EBGruppen
EBAvisAdrVwdgOID
AblaufDatum
0,m
1
0,4
Drucker
1
Typ
Standort
QueueName
PSLevel2
MutationsDatum
Druckerzugehoerigkeit
DruckerName
DruckerKey
<= Belegkonto0,1
1
Geh rt-Zu
0,m0,m0,m
Angestellt
Dienststelle
0,m
VZSZNummer
PoststellenArt
IstAufgehoben
DienststellenTyp
PersonTyp
OrtsCode
Kurzbezeichnung
IstBetreuend
0,m
1
DienstPrivileg
Zugriff
MutationsDatum
0,1
DienstBezeichnung
Sprache
Bezeichnung
1
0,m
1
3
Dienst
ZuweisungZugelassen
MutationsDatum
DienstNr
AdminOhneUnterhaltWrite
AdminMitUnterhaltWrite
0,1
0,1
0,30
11
DDBerechtigungImAbgang
AufhebungsDatum
0,30
11
DDBerechtigung
0,1
ChargeNummer
Status
PostKontoNr
ObjectKey
Nummer
Herkunft
Erstelldatumzeit
AuslandAdresse
BeziehungPEDA
LifecycleStatusdatum
GDOVersion
LifecycleStatus
BeziehungOID
Betreuer
0,10,1
Vorname
TelefonNummerI
TelefonNummerF
TelefonNummerE
TelefonNummerD
PersonalNummer
Name
GDOVersion
FaxNummer
Dienststelle 0,m
0,1
1
0,2
Bestellung
1
Ursprung
Uebermittelt
SZPending
Status
SpezialVersandAdresse
ProcolStatus
MutationsDatum
Lieferart
KundenSprache
ESPending
CheckheftNr
ChargeNr
BestellungKey
BestellDatum
BestellArt
AuslieferDatum
AuslandAdresse
Artikel
Anzahl
Adresse
Bestellstatistik_SZ
Datum
AuftragsTypDetail
AuftragsTyp
Artikel
AnzahlSet
Anzahl
0,m
Hat Zugriff auf
1
BenutzerRegion
1
WriteAccess
AccessPersonSpecial
AccessDienststelleNormal
AccessFirmaNormal
AccessDienststelleSpecial
AccessPersonNormal
AccessFirmaSpecial
BenutzerNameMap
1,m1
Aktuell
BenutzerName
1
0,m
1
BenutzerDienst
BenutzerDienstKey
0,1
1
0,m
Benutzer
Vorname
Visum
Berechtigung
UnterschriftDatum
AdminSubjekt
TelefonArbeitsplatz
TelefaxArbeitsplatz
Sprache
PersonalNr
Name
MutationsDatum
Kurzzeichen
BerechtigungBemerkung
BenutzerName
AutoPendenz
Anrede
Aktiv
0,1
Signatur
Image
BelegID
<= Kundenstamm 1
<= Dienststelle 1 BelegKonto
Status
LifeCycleStatus
LifeCycleStatusDatum
Statusdatum
Sprache
PlzDomizil
Mutationsdatum
Bezeichnung
BelegKontoNr
AdressverwendungOID
AufhebungsDatum
1 0,m
BelegId
BelegId
0,1
0,1
1,m
AvisierungPK
1
0,2
PrivatKtoAzgVar
PostkontoKey
GueltigAbDatum
GSEreignisorientiert
AvisierungKey
LSZAGEreignisorientiert
AktivierungsDatum
LSEreignisorientiert
AvisierungKanalErm
1
1
0,4
AvisierungKanalErmKey
GueltigAbDatum
PostkontoKey
0,2
AvisierungKanal
1 ViaPost
GueltigAbDatum
PostkontoKey
AktivierungsDatum
AvisierungKanalKey
EKontoListen
AvisierungGK
0,12
1
Wochentag
AdressAuswahl
AvisierungKey
GueltigBisDatum
Listen
Periodizitaet
AktivierungsDatum
GueltigAbDatum
BelegBild
DokumentNr
PostkontoKey
1
Avisierung
ZagLsVar
PostwegDokuTypList
Mutationsdatum
KontostandAdressAuswahl
KanalRejectAvis
eMailRejectAvis
AvisierungsTyp
0,1
1 0,m
Attribute
AttributTyp
AttributArt
0,1
0,m
1
ArtikelTeil
Teil
PapierSpezKey
Artikel
1
1,5
ArtikelSpezifikation
PsHeader
Artikel
ArtikelGruppeBezeichnung
Sprache
Bezeichnung
1
5
ArtikelGruppe
ArtikelSubgruppeNummer
ArtikelGruppeNummer
ArtikelGruppeKey
ArtikelEDVSprache
0,5
1
Sprache
EDVNummer
ArtikelEDVScanOC
ScanOC
EDVNummer
0,m
1
0,m
1
ArtikelDrucker
DruckerKey
Artikel
Artikelbezeichnung
Sprache
Bezeichnung
0,m
0,m1
1
0,5
1 5
Artikel
TopArtikel
MaxAnzahl
EDVNummer
DefaultAnzahl
ArtikelTyp
ArtikelNummer
ArtikelArt
Aktiv
AListeElement
Klasse
Information
ErstellDatumZeit
ErledigungsBenutzer
Backoffice
AlisteElementKey
0,1
0,1
AdressVerwendung
Sprache
PlzOrtOID
Plz
Ort
LifecycleStatusDatum
LifecycleStatus
Land
GDOVersionNr
AdressverwendungOID
AdresszuordnungOID
=> AV1
Absenderangaben
Adressbild
AbsenderAdresse
Ort
PLZ
Hausnummer
Anschrift3
Anschrift2
Anschrift1
Land
Zinskondition
=> Kundenstamm
Vollmachtsregelung
PostKonto
Pooling
GesellschafterGesellschaft
Person
Kundenstamm
Journal/Pendenzen
Formbrief
Druckerkonfiguration
Beziehung PEDA
Bestellung
BelegKonto
Avisierung
Artikel
KUDA - OOA Modell
Version 38.0 / RE012A
Adresse
kuda.ooa : <frame> - printed by STETTLERJUE on Wed Jan 25 17:04:50 2012
1/10/2015 ZVIS—A Financial System in Ada 31
DLRestgeld
1
Rundung
MutDatum
MutAnzahl
<= ETrade1
1
eTradeErmaechtigung
1
PoolAuslErmaechtigung
0,101
MitTransferListe
SWIFT
TableAccess
TransIdMajor
TableId
Table Access
Freizuegkeitskonto
eUsers =>1
FreizuegigkeitsKontoErm
FreizuegigkeitsKontoErmKey
FreizuegigkeitsKontoBez
Anschrift
AnschriftAbgeleitet
ZusatzBezeichnung
Postkonto ==> 0,1
DienstleistungTeilnahme ==> 1
10,99
1
1
FreizuegigkeitsKonto
SetSperre
PersonalNrAbschluss
OrtscodeVermittlung
OrtscodeAbschluss
SVNr
StatusDatum
Status
PersonalNrVermittlung
AHVNr
Bezeichnung
BeitrittsDatum
FreizuegigkeitsKontoNr
MutationsDatum
LifecycleStatus
LifecycleStatusDatum
AuftAuslErmEo
1
1
TextDetailliert
Sprache
KontoAlias
IstAktiv
AuftDocAusloeserList
KtoAuslErmEo
Waehrung
UntereLimite
TextDetailliert
Sprache
ObereLimite
KtoDocAusloeser
KontoAlias
IstAktiv
KtoAuslErmTerm
GueltigBisDatum
GueltigAbDatum
BenachrichtigungErm
1
1
UntereLimite
TextDetailliert
Sprache
ObereLimite
KontoAliasEF
KontoAlias
IstAktivDatum
IstAktiv
EZAGMFBLohn
EZAGMFB
EZAGFreigabeLohn
EZAGFreigabeKreditor
BenachrichtigungsArt
BenachrichtigungErmKey
DelayedChecks
ObjectKey
CheckType
BenutzerNr
0,m
SWIFTErmaechtigungEZAG
1
0,m
1
AuftragFreigabe
SWIFTErmaechtigungEZAGKey
SWIFTDefaultKonto
0,m
1
Waehrung
SWIFTDefaultKontoKey
0,m
SWIFTErmaechtigung
1
0,m
1
SWIFTErmaechtigungKey
0,m
ETSWIFT
1
BIC
ETSWIFTKey
BicStammSWIFT
SWIFTAdresse
Ort
Name
BicStammSWIFTKey
eRechnungeTeilnahmeMap
0,m
1
0,m
1
eRechnungTeilnahmeXmit
Geburtsdatum
Firma
Benutzername
Art
eUsersIntern
LetzteLogin
1
PreisDetailArt
PostKontoNr
KredAvisParamKontoKey
IoMediumEinzelBest
IoMediumAusfuehrungsBest
DokutypListe
AdressverwendungOID
IoMediumAuftragsBest
BetragDarstellungArt
AuslieferungsNr
FehlerAvisEinmalig
FunktionsTyp
NummerReservierung
PostKontoArt
Nummer
Datum
ZinsKondKey
ZinsVerteilungDauer
ZinsModellGruppe
ZinsModell
VstSatz
StartDatum
SollUsanz
SollZinsSatz
ZentralDruckAuftragFB
ZentraldruckAuftragKey
Sprache
FBData
ZentralDruckAuftrag
ZentraldruckAuftragKey
Uebermittelt
ObjectKey
FormbriefNr
eTnNr
ErstellDatumzeit
Benutzer
AuftragTypDetail
Auftragtyp
ZAGIntervention
=> Postkonto 1
ZAGInterventionKey
ZAGIdent
Nr
MutationsDatum
InterventionsDatum
GueltigBisDatum
Grund
eRechnungTeilnahme
=> Person
1
Nr
Statusdatum
TeilnahmeKey
Art
0,m
=> Waehrung
0,m
0,m
Waehrung0,m
SapKuerzel
WaehrungKey
Waehrung
TaxZinsRundung
SadWaehrungsCode
IstKontowaehrung
IstEuroWaehrung
ISOWaehrungsCode
GueltigBis
BetragsRundung
VorsorgekontoErmaechtigung
0,m 1
0,m
1
0,m
VorsorgekontoDaten
1
Zivilstand
VSTIAdressverwendungOID
VorsorgekontoNr
Vorname
VerpfaendungHypothek
SVNr
StatusDatum
Status
PersonOID
Nationalitaet
Name
Geschlecht
Geburtsdatum
Eroeffnet
Eintragzeit
DMZAdressverwendungOID
BVGPensionskasse
AHVNr
Bemerkung
Anrede
=> Kto 0,1
0,m
1
0,m
Vorsorgekonto
=> AV
1
DLT ->1
Hauptkontokey
SetSperre
Zivilstand
WEFVorbezugDatum
WEFVorbezugBetrag
AusbezahltBankadresse
Pfandglaeubiger
PersonalNrAbschluss
Status
PersonalNrVermittlung
AusbezahltKonto
AusbezahltBetrag
BeitrittsDatum
AusbezahltGrund
AusbezahltDatum
AHVNr
StatusGrund
VorsorgekontoKey
VerpfaendungHypothek
VerpfaendungDatum
MutationsDatum
Bezeichnung
LifecycleStatusDatum
Bemerkung
OrtscodeAbschluss
FaelligkeitsDatum
VerpfaendungBetrag
Verpfaendung
SVNr
OrtscodeVermittlung
StatusDatum
BVGPensionskasse
Waehrung
LifecycleStatus
AHVBriefDatum
VorsorgekontoNr
<= Unterschriftskarte
0,m
0,m
Versicherungen
1
1
Zahlungsmodus
Zahlungskanal
Vorname
Vertragsnummer
Vertragsdauer
Vertragsbeginn
VersicherungKey
Status
Produkt
Praemie
OrtscodeBetreuer
OrtscodeAbschluss
Name
Leistungsfall
GarantierteLeistung
Art
0,m
SystemParameter
SystemParameterKey
SavedTimeStamp
DatenbankID
SysParam
Wert
Typ
SysParamKey
Name
Switzerland
Verkaufsregion
ScanOC
PlzBis
SperrFallCheckSerie
1
0,m
SperrGrund
CheckTyp
CheckHeftNr
AlteSerie
SICAbleitungKonto
<= PostKonto
1 0,m
1
SwiftAdresse
SicTeilnahmeArt
SchoeneNummern
VZSZNummer
Schoenheitsgrad
NrAdminType
Muster
IsSource
Disabled
0,m
0,m
SADErmaechtigung
1
1
Taxkonto
1
SADErmaechtigungKey
RedaktionsSchluss
1
ListeCode
DatumZeit
Benutzer
<= Postkonto (PricingRef)
0,m
<= Postkonto
=> Postkonto1
0,1
Verarbeitungsdatum
0,m
<= Pool
1
=> ePoolErm
<= ZinsKondPool1
1,m
=> DLT 1 0,m
Sprache
Waehrung
Verarbeitungsdatum
Variant
UbzgLim
UbzgFrist
TaxZusatzBetrag
TaxGrundBetrag
StatusGrund
StatusDatum
Status
SaldoreportGueltigAb
NrVerwaltung
NrVon
NrType
NrBis
Funktion
Benutzer
Bemerkung
NotifikationKU
PostkontoKey
ErstellDatumZeit
KundenStammKey
NotifikationTyp
NotCheck
NotCheckKey
CheckHeftNr
NormVersicherung
Bonusart
Bonus
MinussaldoFB
ChargeNr
Filename
PostkontoNr
FormbriefNr
Datum
MarketingAktionBez
3
1
Sprache
Bezeichnung
0,m
<= MktAktion
0,m
0,1
MarketingAktion =>
0,m
MarketingAktion
0,m0,m
VRListe
Nummer
KundeEroeffnung
KontoEroeffnung
GueltigBis
GueltigAb
DLTListe1
DLTListe0
LoeschWoerter
Wort
Laufnummern
Nummer
Id
Datum
KudaParam
ParamString
ParamInt
ParamDatetime
Id
1,m
KredAvisParam
1
AuftraggeberDokuList
AuftraggeberAuslNr
AuftraggeberAdrVwdgOID
AblaufDatum
KontoAvisDef
1
GueltigBisDatum
GueltigAbDatum
DokumentNr
AvisDefKey
KleindruckKontrolle
DienststelleKey
Automatic
Auftragtyp
KleindruckAuftrag
1Status
ObjectKey
KleindruckAuftragKey
Flag2
Flag1
ErstellDatumzeit
Benutzer
Auftragtyp
0,m
KartengeldVertrag
<- DLT
1
PersonOid
KartengeldVertragOid
MinimaleZeichnungsArt
0,1
UserId2
UserId
Ursprung
UnternehmensNr
Stichwort
PostKontoNr
PEDAPersonKey
ObjectTyp
ObjectTitel
ObjectKey
MFromN
JournalControl
LastUpdate
IdKarteAntragDaten
LaufNr
BestellDatumZeit
EroeffnungDatum
KundenStammKey
eUserKey
0,m
Postkonto =>
1
Hypothek
1
Statusdatum
Status
ReferenzNr
HypothekKey
GesperrterCheck
IstASerie
GesperrterCheckKey
CheckNr
Betrag
AusstellDatum
FreieAListe
KlisteId
Id
Erstellungsdatum
ErstellerNr
Bezeichnung
FondVersicherung
Anteile
Fonds
-> FondsDagDetails0,m
FestGeldZinsen
Zinssatz
GueltigPer
Waehrung
LaufZeitNr
1
0,1 1
Festgeld
Statusdatum
Status
ReferenzNr
FestgeldKey
Auslieferung => 0,m
0,m
0,1
0,10
1
1
=> Person1
eUsers
AV <= 1
1,m
1
Yellowbill
SigAusgeschlossen
Upload
eUserKey
Uploaddatum
Statusdatum
Status
SigAusGrund
Id
DownloadReports
Download
BeziehungKey
1
eTTechnisch
IOKanal2
IOKanal
Funktionstyp
DatentraegerZusatz
Datentraeger2
DatentraegerZusatz2
Datentraeger
0,m
eTSAD
1
eTnNr
=> Euser
1
0,1
=> Postkonto
0,1 => NP
0,1
eTrade
0,2
1
BeziehungKey
eTMerchantID
1
MerchantID
0,m
1
eTeKonto<= AV 1
<= DLT
1
TechTeilnahme
PersonalNr
eTnNr
Ortscode
KtoVerzeichnisZugriff
HerkunftTyp
0,m
0,1
0,m
1
EteilnahmeVESR
AuslieferungsNr
eTeilnahmeErmaechtigungen
0,m
1
DlTnNr
TaxKontoNr
PostKontoNr
Art
0,m
0,m
1
1
0,2
1
0,1
0,10
0,1
0,m
1
0,2
1
0,1
eTeilnahme
1
0,1
1 0,1
0,1
0,m
1
0,2
AV <= 1
Statusdatum
Status
Nr
Mutationsdatum
LifeCycleStatusDatum
LifeCycleStatus
Fixiert
0,m
<=DebitDirect
-> eTDebitDirect
0,m
ETDebitDirect
<=DLT
1
eTnNr
0,m
0,1
eTBestellung
1
eTnNr
Uebermittelt
SZPending
Sofortversand
FormbriefNr
PasswordPlain
KarteIdNummer
ChargeNrAusland
eTBestellArt
ChargeNr
BestellungKey
BestellDatumZeit
eTAuftragsParam
TeilnehmerArt
MitVorgezogenenZa
MitDirektsuche
IstRentenAnlieferung
MitVorgezogenenAusland
MitNachforschungsRef
IstAHVKasse
MitAHVAbsender
0,m
0,m
1
Zahlungsvermerk
TnNrDrucken
ErstBestellDatum
TnKontoNr
ReferenzNr
FormularArt
EigenesKonto
CodierzeileDrucken
BezeichnungFreitext
BezeichnungDrucken
Bezeichnung
Betrag
Anzahl
1
EsrAbgabeKontrolle
Anzahlkostenpflichtig
Anzahl
Bestelldatum
TnKontoNr
Waehrung
1
ESAbgabeKontrolle
BestellDatum
Anzahlkostenpflichtig
Anzahl
ErmaechtigungsKarte
=> Dienststelle0,1
0,6
1
StatusGrund
StatusDatum
Status
ProcolStatus
MutationsDatum
ErmaechtigungskarteKey
AuslieferDatum
ErfassungsFehler
Fehler
Datum
1
ePoolErmaechtigung
Zeichnungsart
IstPoolManager
EnumMapping
ParentId
ParentEnumType
MenuPosition
Id
Gueltig
GParentId
GParentEnumType
EnumType
0,m
0,m
1
eKontoErmaechtigung
1
ZeichnungsartKreditLohn
ZeichnungsartKredit
ZeichnungsartDebit
SaldoSichtbar
MutationsDatum
LohnSichtbar
FremdAuftraege
BuchungenSichtbar
AuftragErfassbar
eDepotDetails
AuftragsId
DlZag
ShowWaehrung
DlSpezialTaxe
PauschalArt
Abrechnung
DlSpezialLimite
UbzgLim
UbzgFrist
HerkunftUbzg
HerkunftCheckinkasso
CheckInkassoLim
DlPFKKarte
VisaPlatinum
VisaGold
VisaClassic
VisaBusiness
Reserve
MastercardValue
AlumniUZH
MastercardGold
MastercardStandard
DlPCVISA
KartenAnzahl
DlPCC
KartenAnzahl
DlMinussaldoMeldung
Abmachung
DlKontoKorrentKredit
ReferenzNummer
=> DLGKEGA (Settlement)0,m
DlGKEGA
0,1
0,2
1
MitAuslandsGutschriften
StueckelungArt
PauschalTaxe
MitBelegBild
Losgroesse
Auslieferinfo
EbGruppe
=> DLGK (MApping)0,1
DlGK
0,500
VersandCodeAvis
EBGruppen
DlEB
VersandCodeAvis
EBGruppen
1
1
0,m
<= DLT
0,m
<= Adressen
0,1
0,m
FreizuegigkeitsKonto <==
0,1
1
0,m
DienstleistungTeilnahme
0,m
0,m
StatusGrund
StatusDatum
Status
PstPersonalCode
MutationsDatum
LifeCycleStatusDatum
LifeCycleStatus
IgnoreTimeout
Hinterlage
HerkunftTyp
HerkunftNr
EroeffnungDatum
DienstleistungTeilnahmeKey
DienstleistungArt
CheckheftNr
AusnahmeDatumVon
AusnahmeDatumBis Dienstleistungen
KtoGueltig
KndGueltig
FuerKunde
FuerKonto
DienstleistungArt
1
Devisen
StatusDatum
Status
ReferenzNr
DevisenKey
1
DepotReferenz
IstHauptKonto
DepotReferenzKey
DepotParam
1
1 Sprache
DomizilLand
AdressverwendungOID
0,m
1
DepotErmaechtigung
=> DepotErmaechtigung0,m 1
Zeichnungsart
FremdAuftraegeVerwalten
DepotErmaechtigungKey
BestandAbfragen
AuftraegeErfassen
DepotBezeichnung
ZusatzBezeichnung
Bezeichnung
AnschriftAbgeleitet
Anschrift
-> Auslieferung1
DepotAvisierungKanalErm
GueltigAbDatum
DepotKey
1
1
0,4
DepotAvisierungKanal
AktivierungsDatum
ViaPost
GueltigAbDatum
-> Auslieferung
1
1
DepotAuslieferungsErm
GueltigBisDatum
GueltigAbDatum
DepotAuslieferungsErmKey
=> A-Liste0,m
10,1
=> Marketingaktion1
0,1
1
1
1
0,5
1
0,m
1,2
-> DepotAuslieferungsErm0,8
Depot
<= Adressen 1
StatusGrund
StatusDatum
Status
Bezeichnung
PersonalNr
MitWiederanlage
LifecycleStatusDatum
LifecycleStatus
DepotNr
DepotKey
BezeichnungFreitext
Beitrittsdatum
Ortscode
Mutationsdatum
Herkunft
KurzBezeichnung
KurzbezeichnungFreitext
0,m
0,m
-> Taxkonto
0,1
0,1
0,m
1
DebitDirectTeilnahme
-> DD-Ausl
0,1
-> Auslieferung
1
-> AV
1
WochenLimit
TeilnehmerArt
TagesLimit
StatusGrund
StatusDatum
Status
SaLimit
Nr
Mutationsdatum
MonatsLimit
eTnNr
EmailAdresse
MitWiderspruchsrecht
MitDeckungsPruefung
MFBRegelTest
MFBRegel
KontoBezLimit
HPVE
ExpressLimit
EaLimit
BeitrittsDatum
AusnahmeBEKontrolle
1
DebitAvisParam
AblaufDatum
0,1
0,5
1
Checkserie
StatusGrund
StatusDatum
Status
ProcolStatus
Mutationsdatum
IstASerie
CheckTyp
CheckserieKey
CheckHeftNr
ChargeNr
Auslieferdatum
ArtCheckTyp
Anzahl
BilanzKalender
TagesArt
Datum
AusserOrdentlich
Datum
BerechtigungVerlustFall
0,11,m
VerlustMeldungVorhanden
VerlustMeldeDatumZeit
VerlustDatumZeit
StatusGrund
StatusDatum
Status
ProcolStatus
MutationsDatum
BerechtigungVerlustFallKey
BerechtigungSperrFall
StatusDatum
Status
SperrFallTyp
SperrDatumZeit
MutationsDatum
BerechtigungSperrfallKey
0,m
Hauptsitz
BankClearing
0,1
WandlungPostKontoNr
Updated
SICAbwicklung
Ort
NrExtern
Name
BankClearingNrZukunft
BankClearingNr
AvisParam
<= AV 1
<= AV (Zusatz) 0,1
1,m
1
ZagLsVar
Sprache
PostKontoNr
PLZ
Land
KanalRejectAvis
IsKeyKunde
GueltigAbDatum
Gueltig
eMailRejectAvis
EKontoListen
AvisParamKey
AvisierungsTyp
AblaufDatum
1
0,m
AvisDef
wochentag
Periodizitaet
PapierVersandArt
AdressAuswahl
BelegBild
Dokument
PrivatKtoAzgVar
Listen
AvisDefKey
AutonomeVerarbeitung
Zeile
Typ
FileName
1
KtoAuslErm
1
KtoAuslErmKey
Ereignisorientiert
0,1 1
Anlagen
StatusDatum
Status
ReferenzNr
AnlagenKey
<= Postkonto
0,1
Kundenstamm =>0,1
1,m
0,1
Depot =>0,1
Zugriffsklasse
StatusDatumZeit
Status
SpecialInfo
Ordering
OperationCentre
ObjectTyp
ObjectTitel
ObjectKey
NOKGrund
Klasse
Information
ErstellDatumZeit
ErledigungsBenutzer
eRechnung
Vorsorgekonto
Versicherung
Sperren / Verlust
KartengeldVertrag
Diverses
Dienstleistungen
Depot
Debitdirect
Data Transfer
Banken
Postkonto (PricingRef) =>
Postkonto (PricingRef) =>
Aktivgeschaeft
1/10/2015 ZVIS—A Financial System in Ada 32
<= ETrade1
1
eTradeErmaechtigung
<= PoolAuslErm
0,m
PoolAuslieferung
PoolAvisTyp
AuftragsFehlerISO
0,1
1
StatusReasonCode
ProprietaryCode
SapKonto
1
0,1
1
0,1
MutationsDatum
SapKontokey
Bezeichnung
Gueltig
Nr
Freizuegkeitskonto
eUsers =>1
FreizuegigkeitsKontoErm
FreizuegigkeitsKontoErmKey
FreizuegigkeitsKontoBez
Anschrift
AnschriftAbgeleitet
ZusatzBezeichnung
Postkonto ==> 0,1
DienstleistungTeilnahme ==> 1
10,99
1
1
FreizuegigkeitsKonto
SetSperre
PersonalNrAbschluss
OrtscodeVermittlung
OrtscodeAbschluss
SVNr
StatusDatum
Status
PersonalNrVermittlung
AHVNr
Bezeichnung
BeitrittsDatum
FreizuegigkeitsKontoNr
MutationsDatum
LifecycleStatus
LifecycleStatusDatum
0,m 0,m
SWIFTSortCodes
Land
Code
SWIFTErmaechtigungEZAG
1
0,m
1
AuftragFreigabe
SWIFTErmaechtigungEZAGKey
0,m
1
Waehrung
SWIFTDefaultKontoKey
SWIFTErmaechtigung
1
0,m
1
SWIFTErmaechtigungKey
0,m
ETSWIFT
1
BIC
ETSWIFTKey
BicStammSWIFT
SWIFTAdresse
Ort
Name
BicStammSWIFTKey
eRechnungeTeilnahmeMap
0,m
1
0,m
1
eRechnungTeilnahmeXmit
Vorname
TeilnahmeKey
PLZ
Ort
Op
Nr
Name
Mutationsdatum
Landcode
Geburtsdatum
Firma
Benutzername
Art
eUsersIntern
LetzteLogin
TransaktionGruppe
0,3
1
Gruppierungswert
Gruppierungskriterium
EKAuslieferungNeu
GLAvisLimite
GLAvisTaxArt
BIC
TaxkontoKey
GueltigAbDatum
Preis
0,m
0,m
ZentralDruckAuftragFB
ZentraldruckAuftragKey
Sprache
FBData
ZentralDruckAuftrag
ZentraldruckAuftragKey
Uebermittelt
ObjectKey
FormbriefNr
eTnNr
ErstellDatumzeit
Benutzer
AuftragTypDetail
Auftragtyp
eRechnungTeilnahme
=> Person
1
Nr
Statusdatum
TeilnahmeKey
Art
WirtschaftlicheBerechtigung
WerbungSgmntMap
MarktSegment
KundenSegment
KundenGruppe10,m
Werbung
1
1,4
WhgArtListe
WerbKey
Segmentierung
Prioritaet
MutationsDatum
KontoTypListe
KontoArtListe
GueltigBis
GueltigAb
FondsDokuTypListe
DokumentListe
Bezeichnung
WerbeText
WerbKey
Text
Sprache
Watchdog
Zeit
=> Waehrung
VorsorgekontoErmaechtigung
0,m 1
0,m
1
0,m
VorsorgekontoDaten
1
Zivilstand
VSTIAdressverwendungOID
VorsorgekontoNr
Vorname
VerpfaendungHypothek
SVNr
StatusDatum
Status
PersonOID
Nationalitaet
Name
Geschlecht
Geburtsdatum
Eroeffnet
Eintragzeit
DMZAdressverwendungOID
BVGPensionskasse
AHVNr
Bemerkung
Anrede
VorsorgekontoBezeichnung
Anschrift
ZusatzBezeichnung
AnschriftAbgeleitet
=> Kto 0,1
1
0,m
Vorsorgekonto
=> AV
1
DLT ->1
Hauptkontokey
SetSperre
Zivilstand
WEFVorbezugDatum
WEFVorbezugBetrag
AusbezahltBankadresse
Pfandglaeubiger
PersonalNrAbschluss
Status
PersonalNrVermittlung
AusbezahltKonto
AusbezahltBetrag
BeitrittsDatum
AusbezahltGrund
AusbezahltDatum
AHVNr
StatusGrund
VorsorgekontoKey
VerpfaendungHypothek
VerpfaendungDatum
MutationsDatum
Bezeichnung
LifecycleStatusDatum
Bemerkung
OrtscodeAbschluss
FaelligkeitsDatum
VerpfaendungBetrag
Verpfaendung
SVNr
OrtscodeVermittlung
StatusDatum
BVGPensionskasse
Waehrung
LifecycleStatus
AHVBriefDatum
VorsorgekontoNr
<= Unterschriftskarte
0,m
VarDagEndbeguenstigter
1
1,51
VarDagEndbeguenstigterKey
Replicate
Mitteilungen
LaufNr
Endbeguenstigter
Betrag
BankKontoNr
Anteil
=> PostKonto
VarDagDetails
TaxLastKontoKey
TaxBetrag
Splitting
RestSaldo
Replicate
ProzentSatz
MonatsTaxe
MinAusloeseSaldo
Betrag
Berechnungsart
AuftragsArt
0,m
TransaktionTaxe
0,m
1
1
TransaktionEditOption
0,m
1
TaNr
FieldType
FieldName
TransaktionBez
3
1
Sprache
Bezeichnung
0,m
Sollkonto
0,m
Habenkonto
Transaktion
1
1,m
0,1
0,1
ZBKSoll
ZBKHaben
Nr
MutationsDatum
BuchungsKlasse
BuchungsArt
AvisFlag
Art
TaxGruppe
1
3
TaNrBuchung
Gueltig
SofortBuchen
PauschalArt
Nr
MutationsDatum
TaxGrpBez
Sprache
Bezeichnung
TaxElementPrio
Prioritaet
MitTaWaehrungsArt
MitPricingArtPK
MitPostKontoTyp
MitMarktSegment
MitKontoWaehrungsArt
MitKundenGruppe
MitKundenSegment
TaxElement
<= DLT
0,1
0,m
1
0,m
1
Typ
TaxWaehrung
TaWaehrungsArt
PostKontoTyp
MarktSegment
KundenSegment
KundenGruppe
KontoWaehrungsArt
FixMaxBetrag
PricingArtPK
0,m
0,1
Taxe
1
3
Pos
MutationsDatum
Manuell
Gueltig
MitTaxStufen
MitFreitext
MitBerechnung
Individuell
DlArt
TaxBez
Sprache
Bezeichnung
TaxBereich
TaxSchritt
UntereLim
TaxOffset
Schritt
ObereLim
TaBilanzPF
ValutaTag
PricingPkTaGruppe
PricingGkTaGruppe
EBGruppe
BBGeometrie
BBAvisieren
AvisListe
AoAvisierungGrund
0,m
TaBilanz
1
Dienst
0,1
UmrechnungsOption
MaxBewertungsabweichung
Manuell
Gueltig
FwTaArt
BuchArtSelListe
SQR_Temp
StatusGrund
StatusdatumP
StatusdatumDl
StatusdatumB
Status
SperrFallTyp
PostKontoNr
Keyfield2
Keyfield1
KartenNr
CheckTyp
CheckNr
CheckHeftNr
Bezeichnung
Betrag
Ausstelldatum
AlteSerie
SonderAuslieferung
0,12
1
Datum
AuslieferungsNr
SICAbleitungKonto
<= PostKonto
1 0,m
1
SwiftAdresse
SicTeilnahmeArt
SetNotifikationKonto
0,m
1
1
StatusDatum
Status
BenutzerFormbrief
BriefUnterdrueken
PricingSetKey
KundenStammKey
ErinnerungsbriefAm
Art
HauptkontoKey
SetNotifikation
1 CouponheftStartDatum
CouponheftVersandDatum
KundenStammKey
Art
0,m
RekaKonto
1
ZusatzBezeichnung
Waehrung
UbzgLim
StatusGrund
StatusDatum
Status
Sprache
RekaKontoKey
MutationsDatum
LifeCycleStatusDatum
LifeCycleStatus
KontoTyp
KontoNr
KontoBezeichnung
CallId
Bilanzkreis
1,m
1
1
0,1
PricingSet
1
TaxBefreiungBis
StatusDatum
Art
<= Postkonto (PricingRef)
<= TaxKonto
<= Postkonto
=> Kto (Ersatzkto)
=> GSkonto
=> Taxkonto
OpKonto
KontoNr
Bilanzkreis
Bereinigt
AuszifferArt
ChargeNr
Filename
PostkontoNr
FormbriefNr
Datum
<= MktAktion
=> Land
0,1
1,m
KredAvisParam
1
SpracheLieferant
SpracheAuftraggeber
PreisDetailArt
LieferantDokuList
LieferantAuslNr
LieferantAdrVwdgOID
KredAvisParamKey
IOMediumEinzelBest
IOMediumAusfuehrungsBest
IOMediumAuftragsBest
GueltigAbDatum
Gueltig
FunktionsTyp
FehlerAvisEinmalig
BetragDarstellungArt
AvisDokumente
AuftraggeberDokuList
AuftraggeberAuslNr
AuftraggeberAdrVwdgOID
AblaufDatum
KleindruckAuftrag
1Status
ObjectKey
KleindruckAuftragKey
Flag2
Flag1
ErstellDatumzeit
Benutzer
Auftragtyp
FondsKommissionCAP
IOMedium
CAPBetrag
Kondition
FondsKommission
ProzentSatz
Kondition
IOMedium
AuftragsArt
0,m
0,m 1
0,m
1
FondsDefinition
0,1
ZielFonds
WiederanlageErlaubt
Waehrung
VerwaltungsKommissionsart
MinBetragErstzeichnung
ValorenNummer
FondsPerformanceAnzeigen
VerwaltungsKommission
VerarbVerzoegerung
Typ
StichDatum
Status
Risiko
MitAusschuettung
MinBetragRuecknahme
Kategorie
IstPFFonds
IstAffidavit
ISINNummer
Gesellschaft
FondsPlanErlaubt
FondsEntnahmePlanErlaubt
ErfassungsDeadline
EndDatum
DienstNr
AnteilsFraktionenErlaubt
AnlageHorizont
Bezeichnung
AnlageStrategie
BetragsErfassungErlaubt
AusgleichKontoNr
AnzeigeInUmsystemen
Besteuerung
MinBetragFondsplan
MinBetragFolgezeichnung
MaxPreisabweichung
EinfuehrungsDatum
-> FondsDagDetails0,m
0,m
1
FondsDagDetails
=> Depot
1
RestSaldo
Replicate
PersonalNrVermittlung
PersonalNrAbschluss
OrtscodeVermittlung
OrtscodeAbschluss
MinAusloeseSaldo
KommissionsSatz
CAPBetrag
Betrag
BerechnungsArt
ExpressPreis
TaxBetragEa
EAArt
Auslieferung => 0,m
0,m
0,1
0,10
1
1
=> Person1
eUsers
AV <= 1
1,m
1
Yellowbill
SigAusgeschlossen
Upload
eUserKey
Uploaddatum
Statusdatum
Status
SigAusGrund
Id
DownloadReports
Download
BeziehungKey
1
eTTechnisch
IOKanal2
IOKanal
Funktionstyp
DatentraegerZusatz
Datentraeger2
DatentraegerZusatz2
Datentraeger
eTSAD
1
eTnNr
eTMerchantID
1
MerchantID
<= AV
eTKredAvis
1
PreisDetail
LieferantDokuList
IOMediumEinzelBest
IOMediumAusfuehrungsBest
IOMediumAuftragsBest
GueltigAbDatum
FunktionsTyp
FehlerAvisEinmalig
BetragDarstellungArt
Avisdokumente
AuftraggeberDokuList
AktivierungsDatum
1
eTeKonto<= AV 1
<= DLT
1
TechTeilnahme
PersonalNr
eTnNr
Ortscode
KtoVerzeichnisZugriff
HerkunftTyp
0,m
0,1
0,m
1
EteilnahmeVESR
AuslieferungsNr
eTeilnahmeErmaechtigungen
0,m
1
DlTnNr
TaxKontoNr
PostKontoNr
Art
0,m
0,m
1
1
0,2
1
0,1
0,10
0,1
0,m
1
0,2
1
0,1
eTeilnahme
1
0,1
1 0,1
0,1
0,m
1
0,2
AV <= 1
Statusdatum
Status
Nr
Mutationsdatum
LifeCycleStatusDatum
LifeCycleStatus
Fixiert
0,m
<=DebitDirect
ETDebitDirect
<=DLT
1
eTnNr
<= AV
eTDebitAvis
1
VerarbMeldTyp
LieferantDokuList
IOMedium
GueltigAbDatum
FehlerAvisEinmalig
AvisDokumente
AuftraggeberDokuList
AktivierungsDatum
0,m
Uebermittelt
eTAuftragsParam
TeilnehmerArt
MitVorgezogenenZa
MitDirektsuche
IstRentenAnlieferung
MitVorgezogenenAusland
MitNachforschungsRef
IstAHVKasse
MitAHVAbsender
1
1,m
eSteuerMechanismen
ZeitVon
ZeitBis
MaxAnzahlEa
KontoArt
EsmKey
AuftragsArt
EsrTeilnahmeParam
1 1
TnKontoNr
TeilnahmeNr
SuspendiertBis
Suspendiert
StatusDatum
Status
RejectEmpfaenger
PortefeuilleOID
KanalRejectAvisTeiln
KanalRejectAvisAusl
KanalGsAufteilung
IsKeyKunde
EncodeRejectAvisTeiln
EncodeRejectAvisAusl
eMailRejectAvisTeiln
eMailGsAufteilung
Bezeichnung
AuslieferungsNrTest
AuslieferungsNr
AdrSprache
0,m
=> DAG
0,m
0,1
=> EsrBestellCtrl
0,m
=> EsrAbgabeKontrolle
0,m
=> ESRBestellung
Normal
0,m
=> AL
Test
0,m
=> AL-Test
0,1 1
EsrTeilnahme
BankClearing <= 0,1
Adressen <= 1
=> DLT 1
1
0,1
ZuGunstenDritter
TnKontoNr
TaxBelasteter
TaxBankKontoNr
SuspendiertVon
SuspendiertBis
Suspendiert
Statusgrund
StatusDatum
Status
RejectEmpfaenger
PauschalTaxWaehrung
PauschalTaxBetrag
MutationsDatum
LifeCycleStatusDatum
LifeCycleStatus
KanalRejectAvisTeiln
KanalRejectAvisAusl
KanalGsAufteilung
Fixiert
FIPOAbfrageErlaubt
EncodeRejectAvisTeiln
DAGFaehig
eMailRejectAvisTeiln
EncodeRejectAvisAusl
eMailGsAufteilung
Beitrittsdatum
AbschlagZhlgTaxfrei
AufhebungsGrund
AufhebungsDatum
ErsatzKontoArt
ErsatzBankClearNr
BezeichnungGross
BezeichnungFreitext
Bezeichnung
Beschleunigt
AbschlagZhlgTaxart
1
0,6
1
EsrGutschrift
Prozent
EndBeguenstigter
BankKontoNr
IstErstKonto
EsrGutschriftKey
1,41
EsrBelegart
Reihenfolge
Belegart
ErledigungsHinweis
0,5
0,m
Text
Sprache
Nr
0,m
1
0,1
EKAuslieferung
ZusatzWochentag
ZusatzPeriodizitaet
Zeitpunkt3
Zeitpunkt2
Zeitpunkt1
Wochentag
Preis
Intervall
GLAvisTaxArt
Bildformat
Periodizitaet
Partnerkategorie
KontoAzgAuchOhneBuch
GLAvisLimite
KontoAvisTyp
eDepotDetails
AuftragsId
eDagDetails
Replicate
eTnNr
AuftragsId
EAAuslieferungsParam
0,11
Wochentagen
Periodizitaet
Monatstag2
PortefeuilleOID
Monatstag1
Verschluesselung
StatusDatum
Status
VZSZNummer
eTnNr
Jahresende
MediumZusatz
IOKanal
Datenmedium
AuslieferungsNr
Datenformat
Dateiname
AdressverwendungOID
Prioritaet
EmailAdresse
0,m0,m
EAAuslieferung
Wochentagen
Periodizitaet
Monatstag2
Monatstag1
StatusGrund
Jahresende
AufhebungsGrund
AufhebungsDatum
EroeffnungsDatum
Prioritaet
=> DLGKEGA (Settlement)0,m
=> DLGK (MApping)0,1
<= DLT
1
DepotReferenz
IstHauptKonto
DepotReferenzKey
DepotParam
1
1 Sprache
DomizilLand
AdressverwendungOID
0,m
1
DepotErmaechtigung
=> DepotErmaechtigung0,m 1
Zeichnungsart
FremdAuftraegeVerwalten
DepotErmaechtigungKey
BestandAbfragen
AuftraegeErfassen
DepotBezeichnung
ZusatzBezeichnung
Bezeichnung
AnschriftAbgeleitet
Anschrift
-> Auslieferung1
DepotAvisierungKanalErm
GueltigAbDatum
DepotKey
1
1
0,4
DepotAvisierungKanal
AktivierungsDatum
ViaPost
GueltigAbDatum
-> Auslieferung
1
1
DepotAuslieferungsErm
GueltigBisDatum
GueltigAbDatum
DepotAuslieferungsErmKey
=> A-Liste0,m
10,1
=> Marketingaktion1
0,1
1
1
1
0,5
1
0,m
1,2
-> DepotAuslieferungsErm0,8
Depot
<= Adressen 1
StatusGrund
StatusDatum
Status
Bezeichnung
PersonalNr
MitWiederanlage
LifecycleStatusDatum
LifecycleStatus
DepotNr
DepotKey
BezeichnungFreitext
Beitrittsdatum
Ortscode
Mutationsdatum
Herkunft
KurzBezeichnung
KurzbezeichnungFreitext
0,m
TestNormal
0,m
0,1
WochenLimit
TeilnehmerArt
TagesLimit
StatusGrund
StatusDatum
Status
1
DebitAvisParam
VerarbMeldTyp
SpracheLieferant
SpracheAuftraggeber
LieferantDokuList
LieferantAuslNr
LieferantAdrVwdgOID
IOMedium
GueltigAbDatum
Gueltig
FehlerAvisEinmalig
AvisDokumente
AuftraggeberDokuList
AuftraggeberAuslNr
AuftraggeberAdrVwdgOID
AblaufDatum
DDAuslieferung
Wochentag
Variante
RblDurchEMail
Periodizitaet
AusfuehrungsTag
RblEmpfaenger
10,1
=> DLT1
DauerAuftrag
WochenTag
Typ
StatusGrund
StatusDatum
Status
Periodizitaet
NrIntern
Nr
Nachdatieren
Mutationsdatum
LetztDatum
GueltigAbDatum
ErstDatum
DauerAuftragKey
BelegVar
AusfuehrungsTag
=> AufgabeWaehrung
1
=> ZielWaehrung
1
=> PostKonto
0,1
=> ESR
0,1
DagDetails
Taxe
SEPAZahlung
Replicate
Mitteilungen
EsrReferenzNr
Endbeguenstigter
EmpfaengerID
BankKontoNr
BankClearingNr
AuslandFinanzInstitut
AuslandBlz
Auftragsart
AuftraggeberReferenz
AuftraggeberID
AufgabeBetrag
AbsenderText
0,1
0,m
DAGAbrufGruppen
Typ
AbrufZeit
AbrufGruppe
5
1BuchText
Text
Sprache
BuchhaltungsKontoGrpBez
3
1
Sprache
Bezeichnung
BuchhaltungsKontoGrp
Nr
MutationsDatum
BuchhaltungsKontoBez
5
1
Sprache
Bezeichnung
BuchhaltungsKonto
1
1,m
Typ
MutationsDatum
KontoNr
Art
Abstimmung
1 BkBilanz
Gueltig
0,m
Bilanz
MandantId
Bilanzkreis
BeilageDef
1
3
VzNr
Schacht
MutationsDatum
KontoListeKey
KeinKSM
GueltigBis
GueltigAb
DokumentArt
Dicke
BeilageKey
BeilageBez
Sprache
Bezeichnung
0,m
Hauptsitz
BankClearing
0,1
WandlungPostKontoNr
Updated
SICAbwicklung
Ort
NrExtern
Name
BankClearingNrZukunft
BankClearingNr
0,5
1
AvisZusatzText
Text
Sprache
0,4
1
AvisVorschlag
Text
Sprache
AvisSelektionDef
Prioritaet
PlzVon
PlzBis
GueltigBisDatum
GueltigAbDatum
0,m
0,5
1
AvisFixText
TaNr
Text
Sprache
0,m
1
0,1
1
0,m
0,m
Auslieferung
1
Verschluesselung
Typ
SuspendiertVon
SuspendiertBis
StatusDatum
Status
Nr
MutationsDatum
MobilTelNr
MediumZusatz
Medium
IOKanal
FormatISO
Format
BIC
EmailAdresse
Dateiname
BezeichnungFreitext
BenachrichtigungsArt
AuftAvisTyp
Bezeichnung
Fixiert
AuftragsFehlerText
5 1
Text
Sprache
AuftragsFehler
Code
Bereich
AuftragsFehlerKey
AsrTeilnahmeParam
TnKontoNr
TeilnahmeNr
SuspendiertBis
Suspendiert
StatusDatum
Status
RejectEmpfaenger
PortefeuilleOID
KanalRejectAvisTeiln
KanalRejectAvisAusl
IsKeyKunde
EncodeRejectAvisTeiln
EncodeRejectAvisAusl
eMailRejectAvisTeiln
Bezeichnung
AuslieferungsNrTest
AuslieferungsNr
AdrSprache => Taxkonto
1
=> LSKonto
1
0,1
1
=> DLT1
1
1
AsrTeilnahme
=> Adressen
1
TnKontoNr
SuspendiertVon
SuspendiertBis
Suspendiert
StatusGrund
StatusDatum
Status
RejectEmpfaenger
MutationsDatum
LifeCycleStatusDatum
LifeCycleStatus
KanalRejectAvisTeiln
KanalRejectAvisAusl
Fixiert
EncodeRejectAvisTeiln
EncodeRejectAvisAusl
eMailRejectAvisTeiln
BezeichnungGross
BezeichnungFreitext
Bezeichnung
BeitrittsDatum
AufhebungsGrund
AufhebungsDatum
1,4
1
AsrBelegart
Reihenfolge
Belegart
eRechnung
Vorsorgekonto
Unterhalt KOBE
SQR
Reka
<- Konto
<- Kunde
PK Pricing
FondsPalette
ESR/ASR
Depot
Dauerauftrag
Banken
Auslieferung
Finite State Automata
• In-house solution (since 1977), known as Procol
• Graphical representation of automata
• Generate Ada Code
• Includes snippets of Ada code
• Used to model state of
• Business objects (accounts, customers, orders, …)
• User Interface
1/10/2015 ZVIS—A Financial System in Ada 33
State Machines
1/10/2015 ZVIS—A Financial System in Ada 34
PMG
• The Paranor Marshalling Generator
• ASIS Application
• Generates compact binary representation of data type
• Used for heterogeneous sytems (big vs. little indian)
• Mainly variant records
• Transportable over the network
• Extended to generated XML (EAI)
1/10/2015 ZVIS—A Financial System in Ada 35
Unification of the Modeling and DSL
Environment
Eclipse based, extensive use of EMF and Xtext
1/10/2015 ZVIS—A Financial System in Ada 36
1/10/2015 ZVIS—A Financial System in Ada 38
50% of code
generated
Focus on Innovation
Why Ada with Generators
• All Ada benefits are still valid for the consumers of the
generated code
• Especially safe type-checking with generated code
• Smart recompilation
• Notice the impact of generated code
• Only recompiles what’s necessary
• ASIS very valuable to generate from Ada code
1/10/2015 ZVIS—A Financial System in Ada 39
Conclusion
• Ada can be used in financial applications
• Not just embedded systems
• Allows for high availability, reliability, scalability, and performance
• It can be economically profitable
• Modeling helps reduce the costs of maintenance
• Use code generation wherever possible
1/10/2015 ZVIS—A Financial System in Ada 40
Thank You!
Stéphane Barbey, CTO
stephane.barbey@paranor.ch
1/10/2015 ZVIS—A Financial System in Ada 41
https://www.linkedin.com/in/barbey

More Related Content

Viewers also liked

Tech Days 2015: Customer Presentation Deep Blue Capital
Tech Days 2015: Customer Presentation Deep Blue CapitalTech Days 2015: Customer Presentation Deep Blue Capital
Tech Days 2015: Customer Presentation Deep Blue CapitalAdaCore
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorAdaCore
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...AdaCore
 
Tech Day 2015: A Gentle Introduction to GPS and GNATbench
Tech Day 2015: A Gentle Introduction to GPS and GNATbenchTech Day 2015: A Gentle Introduction to GPS and GNATbench
Tech Day 2015: A Gentle Introduction to GPS and GNATbenchAdaCore
 
GNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryGNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryAdaCore
 
Tech Days 2015: AdaCore Directions
Tech Days 2015: AdaCore DirectionsTech Days 2015: AdaCore Directions
Tech Days 2015: AdaCore DirectionsAdaCore
 
GNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityGNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityAdaCore
 
GNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsGNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsAdaCore
 
Tech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapTech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapAdaCore
 
GNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STSGNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STSAdaCore
 
Tech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic AnalysisTech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic AnalysisAdaCore
 
GNAT Pro User Day: GNATdashboard - Tracking and Improving Software Quality
GNAT Pro User Day: GNATdashboard - Tracking and Improving Software QualityGNAT Pro User Day: GNATdashboard - Tracking and Improving Software Quality
GNAT Pro User Day: GNATdashboard - Tracking and Improving Software QualityAdaCore
 
Tech Days 2015: Embedded Product Update
Tech Days 2015: Embedded Product UpdateTech Days 2015: Embedded Product Update
Tech Days 2015: Embedded Product UpdateAdaCore
 
GNAT Pro User Day: VISIUM™ and Ada
GNAT Pro User Day: VISIUM™  and AdaGNAT Pro User Day: VISIUM™  and Ada
GNAT Pro User Day: VISIUM™ and AdaAdaCore
 
Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012AdaCore
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyAdaCore
 
Tech Days 2015: An Ada Perspective
Tech Days 2015: An Ada PerspectiveTech Days 2015: An Ada Perspective
Tech Days 2015: An Ada PerspectiveAdaCore
 
GNAT Pro User Day: QGen: Simulink® static verification and code generation
GNAT Pro User Day: QGen: Simulink® static verification and code generationGNAT Pro User Day: QGen: Simulink® static verification and code generation
GNAT Pro User Day: QGen: Simulink® static verification and code generationAdaCore
 
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis ToolsGNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis ToolsAdaCore
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...AdaCore
 

Viewers also liked (20)

Tech Days 2015: Customer Presentation Deep Blue Capital
Tech Days 2015: Customer Presentation Deep Blue CapitalTech Days 2015: Customer Presentation Deep Blue Capital
Tech Days 2015: Customer Presentation Deep Blue Capital
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
 
Tech Day 2015: A Gentle Introduction to GPS and GNATbench
Tech Day 2015: A Gentle Introduction to GPS and GNATbenchTech Day 2015: A Gentle Introduction to GPS and GNATbench
Tech Day 2015: A Gentle Introduction to GPS and GNATbench
 
GNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryGNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada Factory
 
Tech Days 2015: AdaCore Directions
Tech Days 2015: AdaCore DirectionsTech Days 2015: AdaCore Directions
Tech Days 2015: AdaCore Directions
 
GNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityGNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore University
 
GNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsGNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore Insights
 
Tech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapTech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore Roadmap
 
GNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STSGNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STS
 
Tech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic AnalysisTech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic Analysis
 
GNAT Pro User Day: GNATdashboard - Tracking and Improving Software Quality
GNAT Pro User Day: GNATdashboard - Tracking and Improving Software QualityGNAT Pro User Day: GNATdashboard - Tracking and Improving Software Quality
GNAT Pro User Day: GNATdashboard - Tracking and Improving Software Quality
 
Tech Days 2015: Embedded Product Update
Tech Days 2015: Embedded Product UpdateTech Days 2015: Embedded Product Update
Tech Days 2015: Embedded Product Update
 
GNAT Pro User Day: VISIUM™ and Ada
GNAT Pro User Day: VISIUM™  and AdaGNAT Pro User Day: VISIUM™  and Ada
GNAT Pro User Day: VISIUM™ and Ada
 
Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
 
Tech Days 2015: An Ada Perspective
Tech Days 2015: An Ada PerspectiveTech Days 2015: An Ada Perspective
Tech Days 2015: An Ada Perspective
 
GNAT Pro User Day: QGen: Simulink® static verification and code generation
GNAT Pro User Day: QGen: Simulink® static verification and code generationGNAT Pro User Day: QGen: Simulink® static verification and code generation
GNAT Pro User Day: QGen: Simulink® static verification and code generation
 
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis ToolsGNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
 

Similar to Tech Day 2015: Customer Presentation Paranor

Data lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesData lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesComsysto Reply GmbH
 
Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Praxistage
 
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumCloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumTEC Campus
 
Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...
Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...
Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...AI4BD GmbH
 
Data Is The New Oil
Data Is The New OilData Is The New Oil
Data Is The New OilParStream
 
Gipfeltreffen November_2012 reporting
Gipfeltreffen November_2012 reportingGipfeltreffen November_2012 reporting
Gipfeltreffen November_2012 reportingEGELI Informatik AG
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsChristoph Adler
 
Webinar - SAP Gateway
Webinar  - SAP GatewayWebinar  - SAP Gateway
Webinar - SAP GatewayCadaxo GmbH
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data KonnektivitätTrivadis
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Georg Klauser
 
Webcast SAP Cloud Platform No. 1: On-Boarding
Webcast SAP Cloud Platform No. 1: On-BoardingWebcast SAP Cloud Platform No. 1: On-Boarding
Webcast SAP Cloud Platform No. 1: On-BoardingPatric Dahse
 
Digitale Transformation im Gesundheitswesen
Digitale Transformation im GesundheitswesenDigitale Transformation im Gesundheitswesen
Digitale Transformation im GesundheitswesenHans Peter Knaust
 
Chancen und Potential von BPM/E
Chancen und Potential von BPM/EChancen und Potential von BPM/E
Chancen und Potential von BPM/Edluebke
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Lifecamunda services GmbH
 
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?Swiss IPv6 Council
 
Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)NETWAYS
 
Tableau Partner - The Information Lab Deutschland in Hamburg
Tableau Partner - The Information Lab Deutschland in HamburgTableau Partner - The Information Lab Deutschland in Hamburg
Tableau Partner - The Information Lab Deutschland in HamburgThe Information Lab
 
Dv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automationDv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automationTorsten Glunde
 

Similar to Tech Day 2015: Customer Presentation Paranor (20)

Data lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesData lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid Architectures
 
Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)
 
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumCloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
 
Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...
Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...
Linked Data Service (LINDAS): Status quo of the linked data life-cycle and le...
 
Data Is The New Oil
Data Is The New OilData Is The New Oil
Data Is The New Oil
 
Gipfeltreffen November_2012 reporting
Gipfeltreffen November_2012 reportingGipfeltreffen November_2012 reporting
Gipfeltreffen November_2012 reporting
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsights
 
Webinar - SAP Gateway
Webinar  - SAP GatewayWebinar  - SAP Gateway
Webinar - SAP Gateway
 
cbs Webinar SAP AIF
cbs Webinar SAP AIFcbs Webinar SAP AIF
cbs Webinar SAP AIF
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114
 
Webcast SAP Cloud Platform No. 1: On-Boarding
Webcast SAP Cloud Platform No. 1: On-BoardingWebcast SAP Cloud Platform No. 1: On-Boarding
Webcast SAP Cloud Platform No. 1: On-Boarding
 
Digitale Transformation im Gesundheitswesen
Digitale Transformation im GesundheitswesenDigitale Transformation im Gesundheitswesen
Digitale Transformation im Gesundheitswesen
 
Chancen und Potential von BPM/E
Chancen und Potential von BPM/EChancen und Potential von BPM/E
Chancen und Potential von BPM/E
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Life
 
SysAid: The Software (German)
SysAid: The Software (German)SysAid: The Software (German)
SysAid: The Software (German)
 
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
 
Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)
 
Tableau Partner - The Information Lab Deutschland in Hamburg
Tableau Partner - The Information Lab Deutschland in HamburgTableau Partner - The Information Lab Deutschland in Hamburg
Tableau Partner - The Information Lab Deutschland in Hamburg
 
Dv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automationDv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automation
 

More from AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?AdaCore
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesAdaCore
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic libraryAdaCore
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsAdaCore
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verificationAdaCore
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofAdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationAdaCore
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareAdaCore
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentAdaCore
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...AdaCore
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!AdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaCore
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...AdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologyAdaCore
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextAdaCore
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareAdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareAdaCore
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 

More from AdaCore (20)

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded Software
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware Development
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 context
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 

Tech Day 2015: Customer Presentation Paranor

  • 1. ZVIS—A Financial System in Ada AdaCore Tech Days Stéphane Barbey, PhD 1 October 2015
  • 2. About Paranor 1/10/2015 ZVIS—A Financial System in Ada 2 Founded in 1978 35 Employees PhD/Msc/Bsc Individual Software Development Modernization Consulting High Standards Model Based Approaches DSLs Offices in Wahlendorf (CH) Stansstadt (CH) Cebu (PH) Finance Public Administration Transportation Energy Communications Continuous innovation state-of-the-art methods and technologies
  • 3. 1/10/2015 ZVIS—A Financial System in Ada 3 Dear customers, Thank you for making us richer! Ada
  • 4. ZVIS—Payment Transactions • Central platform for payment processing, customer and account • KUDA—Customer database (addresses, cards, checks, special services, …) • KOBE—Account handling, booking engine • Sybase / Oracle DB, VMS / Linux, Ada / DSLs 1/10/2015 ZVIS—A Financial System in Ada 4
  • 5. Some Numbers • 4.5 million accounts • 1000 multiple secure business transactions per second • more than 1.6 billion transactions annually • > 100 billion CHF Assets • > 2,000 users • > 20 peripheral systems 1/10/2015 ZVIS—A Financial System in Ada 5
  • 6. A brief history of ZVIS 1993 Start 1996 Operation 2002 Gnatification DecAda to Gnat 2004 Migration Kobe •VMS to Linux •Sybase to Oracle 2015 Migration Kuda •VMS to Linux •RDB to Oracle 1/10/2015 ZVIS—A Financial System in Ada 7 1 Million lines of code 4 Millions lines of code Technical Modernization Innovation & Maintenance
  • 7. 1/10/2015 ZVIS—A Financial System in Ada 8 >4 millions lines of Ada And not just Ada
  • 8. Architecture HICHuman Interaction Component GUI TMCTask Management Component Interface / Service Choreography PDCProblem Domain Component Business Logic, µ-Services DMCData Management Component Persistence / Database Access Subjects Business areas / DomainsServices Tiers 1/10/2015 ZVIS—A Financial System in Ada 9
  • 9. Reliability & Availability • Two instances of KUDA; Run in two locations • Each location has two fully redundant systems • One system is active, • The other is hot-standby • Switch over possible any time • Active to Standby (within location, automatic switch) • One location -> other location (disaster recovery, quick but not automatic) 1/10/2015 ZVIS—A Financial System in Ada 10
  • 10. Scalability and Performance 1/10/2015 ZVIS—A Financial System in Ada 13 GUI GUI GUI GUI GUI GUI Network Network RDMBS Database HIC TMC PDC DMC DB API PDC AuthShell R W S DB API PDC AuthShell R DB API AuthShell PDC R W DB API PDC AuthShell R W S R OS Process
  • 11. Database Replication 1/10/2015 ZVIS—A Financial System in Ada 15 KUDA HOTSTANDBY PUBSTV HOTSTANDBY PUBLISH HOTSTANDBY KUDADWH HOTSTANDBY SNAP HOTSTANDBY PUBSTV PUBLISH KUDADWH SNAP JCC pubstv JCC jourdwh JCC kudadwh JCC publish JCC stvsnap JCC pubsnap KOBE EAI PEDA-S PUBSUB Mining KUDA Zentral KUDA ReadOnly PUBSTV Mining
  • 12. Why Ada • Readability—Over 20 years and generations of developers • Data Abstraction—Encapsulation, better interfaces to business • Strong Type Checking—Avoid misuse of types • By Value & By Reference—Easy memory management, improves reliability, deterministic performances • Separation of concerns—Spec vs Body • Overloading—Clarity, Unified naming • Exceptions—Propagated over layers & processes, no status code • Interface to other languages—To and from Ada • Automatic compilation—No convoluted makefiles • Portability—VMS, Linux 1/10/2015 ZVIS—A Financial System in Ada 17
  • 13. 1/10/2015 ZVIS—A Financial System in Ada 21 >4 millions lines of Ada Focus on Maintenance
  • 14. Why Not Ada • A general-purpose programming language • Not the language of Business • Much boilerplate Solution • Modeling • Code generation (Ada) • Use of DSL 1/10/2015 ZVIS—A Financial System in Ada 22
  • 15. 18 DSLs Cover many aspects of the software: • Primitive types, enumerations, exceptions • Database model • Non CRUD Operations • EAI Service Definitions • Web services • Extensive tool-chain 1/10/2015 ZVIS—A Financial System in Ada 23
  • 16. 1/10/2015 ZVIS—A Financial System in Ada 25
  • 17. Primitive Types • Database columns and Ada record components must have the same type • Different representations / Null values • E.g. for numbers, Zero is not Null • Constraints (domains) • Runtime Checks • Avoid Misuse • Strong typing in the database and in Ada 1/10/2015 ZVIS—A Financial System in Ada 26
  • 18. Enumeration Types • Different kind of primitives • Additional information • Associated text, translated in “four” national languages • UI Information (menus, visibility, …) • Used in all layers (GUI, Business logic, Database) • Stored in the Database • Generate Ada, SQL, Motif, Documentation, … 1/10/2015 ZVIS—A Financial System in Ada 28
  • 19. Database • Graphical and textual editors • Class diagrams, incl. database rules • Mapping of columns to primitive types • Generate database schema • Generate database bindings and access code • Define and generate primitive types • Generate CRUD and non-CRUD operations 1/10/2015 ZVIS—A Financial System in Ada 29
  • 20. 1/10/2015 ZVIS—A Financial System in Ada 30 Sparkasse 0,m BenutzerPortefeuille ZinsLimSoll 0,m 1 Kreditlimit Herkunft GueltigBis GueltigAb Gueltig PortefeuilleZV DienststelleKey BenutzerNr PortefeuilleOID PersonZuPortefeuille PortefeuilleOID PersonZuPortefeuilleOID GDOVersion PersonOID Portefeuille Ansprechperson Betreuer GDOVersion PortefeuilleOID0,m 0,m SparKonditionKundenstamm KundenGruppe MarktSegment KundenstammTyp TaTaxBetrag TaAnzahl RueckzugSatz RueckzugLim RueckzugFrist GueltigBis GueltigAb LohnKonto AktionsNummer AbschlussDatum PersonalNr Ortscode KredAvisParamKonto 0,2 1 DokutypListe AdressverwendungOID BetragDarstellungArt AuslieferungsNr FehlerAvisEinmalig 0,1 KredAuftragAvisKonto 0,1 0,1 1 0,2 1 PreisDetail KredAuftragAvisKontoKey IoMediumEinzelBest FehlerAvisEinmalig GueltigAbDatum BetragDarstellungArt IoMediumAusfuehrungsBest FunktionsTyp DokutypListe IoMediumAuftragsBest ZinsSatzHaben 1,m 0,1 1,m 0,1 MindestZinsSatz Limite LeitzinsArt Laufzeit ZinsSatz ZinsIndex AbschlagZinsSatz ZinsSatzHabenKey 1 ZinsKondSoll SollZinsSatz ZinsKondKey SollZinsKommission GueltigBis StartDatum SollZinsBisKreditlimit SollUsanz GueltigAb MindestKommission ZinsKondPool VstSatz StartDatum SollUsanz RundungZinsSatz Replicating MitTreuHandVerzinsung MitAoZinsabschluss MinimalZinsSatzHaben HabenUsanz GueltigBis GueltigAb AutoUpdate AbrnPeriode MaximalZinsSatzSoll SollZinsSatz ZinsKondKontoArt Replicating SollZinsSatz HabenZinsLim ZinsKondKey VstSatz StartDatum SollUsanz HabenZinsSatz1 HabenZinsSatz0 HabenUsanz GueltigBis GueltigAb AbrnPeriode 0,m ZinsKondHaben 1 ZinsmodellGruppe ZinsModell Replicating HabenUsanz GueltigBis GueltigAb AutoUpdate AbrnPeriode RundungZinsSatz MitAoZinsabschluss StartDatum ZinsKondKey 0,3 1 ZinsBonus ZinsSatz PromotionTage PromotionGueltigBis BonusArt PromotionGueltigAb ZFKonto PostKontoNr 0,m => eRechnung 0,m => Waehrung 1 0,1 Vorlage 1,5 1 Sprache MutationsDatum FBData 0,m VMR => 0,m 1 <= VMR 0,m Vollmachtsregelung => Person1 0,1 Derived from 0,1 <= Depot 0,1 => Postkonto0,1 ZeichnungsRecht ZeichnungsArt Typ Nummer MutationsDatum Legitimation IstKontoinhaber ErstellDatum CopyPostkontoNr BeziehungKey VerzeichnisBezeichnung 5 1 Sprache Bezeichnung 0,1 0,m UtTaFreigrenze 0,10 1 UtTaFreigrenzeKey TaGruppe Manuell Anzahl Aktuell <= UT 0,m => UT 0,m UnternehmensTeil Is HauptKnd Of 0,1 0,1 0,1 1 StatusDatumC StatusDatumB StatusDatumAF StatusDatumAA StatusDatum Status PricingTAZukunft PricingTa PricingPauschaleTa PricingKontoFuehrung PricingKontoAvis PricingKategorieTa PricingEA PricingAvisTa Preisbefreiung PlzOrtAbgeleitet Nr MutationsDatum Marktsegment Kundensegment Kundengruppe BezeichnungSoundex BezeichnungGross BezeichnungAbgeleitet Bezeichnung 0,m SZAuftragDaten KontoNr ETeilnahmeNr DatumZeit AuftragsTypDetail AuftragsTyp AuftragsArtikel AnzahlSet StatistikArtikel Datum Artikelnummer Anzahl SparKonditionKontoArt 0,m 1 TaTaxBetrag SparKondKey RueckzugLim RueckzugSatz GueltigBis GueltigAb RueckzugFrist TaAnzahl 0,1 0,4 0,4 0,m <= Rekakonto0,m 0,m PricingSetPromotion TaxBefreiungBis PromotionBis <= PricingSet 0,m PostKontoSaldo Saldo PostKontoNr Datum 1 1,m PostKontoArt 1 0,m UbzgLim UbzgFrist SicherheitsLim ProduktArt PostKontoTyp PostKontoArt MutationsDatum Klasse CheckInkassoLim BADUbzgLim 0,m 0,m 0,m 0,m 0,m 0,m Postkonto => 0,m 0,m 0,m0,m 0,m0,m 0,m 0,m 0,1 0,1 0,m 0,m 0,m 0,m 0,m 0,m 0,m 0,1 0,1 0,m 0,m 0,m Kto => 0,m 0,1 0,m0,m 0,m 0,1 0,m 1 0,1 0,m 1 0,1 0,m 1 0,1 0,m 0,1 0,1 1 0,1 PostKonto 1 1 AvisZusatz 1 Avis 1 Korresp 1 0,m 0,m => KS 1 Zugriffsklasse VerzeichnisEintrag VereinbarungrmEZAG UeberzugArt TAUModus TauGsSummeNWE TauGsModus TauGsAnzahl DDBerechtigung StatusGrund StatusDatum Status SepaCoreDDInfoVersandt SepaB2BDDInfoVersandt SDDBerechtigung SaBruttoVerbuchung Rechnungskreis PromotionZinsGueltigBis PromotionZinsGueltigAb ProcolStatus PostKontoNr PostKontoKey PersonalNrVermittlung PersonalNrAbschluss OrtscodeVermittlung OrtscodeAbschluss OhneUnterschrift MutationsDatum MitDeckungsPruefung MitAListeDeckungsKontr MFBRegel LifeCycleStatusDatum LifeCycleStatus KurzBezeichnungFreitext KurzBezeichnung KontoBezeichnung KeineSets HerkunftTyp HatRestsaldo Haftentlastung GroesstKonto ExpressAuftErlaubt EroeffnungDurch ePaymentErlaubt CplTaScreening BezeichnungFreitext BezeichnungAnschrift BelegbildNacherfassung BeitrittDatum AustrittDatum Aktennr AbschlagZhlgTaxfrei AbschlagZhlgTaxart 1 PoolTeilnahme 0,m 1 Verarbeitungsdatum StatusGrund StatusDatum Status MutationsDatum DatumAustritt DatumEintritt GueltigBis GueltigVon MitDeckungspruefung MitAnAbDisposition IstHauptkonto 0,1 <= ZinsKondPool1 1,m HauptKonto 0,1 TaxKonto1 ZinsKonto 0,1 Pool Adresse1 MitVerzinsung Sprache StatusGrund StatusDatum MitAnAbDisposition EroeffnungsDatum ListeNurPoolmanager Status SaldoreportGueltigAb Nr DeckungspruefungArt MitDeckungspruefung Bezeichnung GueltigBis GueltigVon MutationsDatum DagAbrufgruppe Kontobezeichnung => 0,m PlzOrt 0,m 1 ZusatzZiffer PlzOrtOID Plz Ort Kanton Geloescht GDOVersionNr Bezeichnung Personal 0,m 1 Rolle PersonalNummer Arbeitgeber Rechnungskreis PersonalStatus PersonalKey 0,1 Person => AV 0,1 0,m 1 Sprache PersonTyp PersonNummer PersonKey OrgBezeichnung MandantId GeloeschtPeDa NogaCode LifeCycleStatus Kurzbezeichnung GDOVersion 0,m Pendenz =>0,m 0,m 0,m Pendenz Verantw. 1 0,1 Erledigungs Benutzer 0,1 0,1 0,1 Erstell Benutzer 1 Gesperrt UebergabeDatum Status PostKontoNr PendenzTyp PendenzKey ObjectKey MutationsDatum FBNummer FaelligkeitsDatum ErstellDatum ErledigungsDatum Bemerkung PapierSpezifikation Typ PapierSpezKey GroesseY GroesseX Gewicht Farbe 0,m 0,1 PapierEinschub Einschub DruckerKey Ortscode OrtscodeOID Ortscode OrtLang Ort GDOVersion 0,m 1 NichtBezeichnung LoeschDatum NichtBezeichnungKey MutationsDatum LaufNr Bezeichnung <= Etrade0,m <= eUsers0,m NatuerlichePerson ZusatzBezeichnung Vorname TodesDatum TitelFreitext Nationalitaet NameZusatz Nachname Geschlecht GeburtsDatum AusbKondGueltigBis Aufenthaltsbewilligung Anrede ModellGruppeReplicatingMap Replicating Gruppe Modell 0,1 Land <= DagDetails 0,m SadLandCode Land ISOLandCode 0,1 ETN =>0,m Betreuende Region 0,m Journal =>0,m DLT =>0,m Bestellung => 0,m Belongs to 0,m 0,1 1 0,1 KundenstammZV 0,1 VR Vertrauenswuerdig Sprache IsKeyKunde Promotion PortefeuilleOID MutationsDatum KundenstammKey KreditorDeckung Hitangebote 0,1 <= Alisteelement 0,m 0,m1 1 0,1 Kundenstamm 1 0,1 1 ZugriffsKlasse Werbesperre DokumenteNichtEingescannt Erfassungsdatum Bezeichnung GDOVersion VerlustscheinVorhanden Statusgrund ErhoehtesFraudRisiko Status NogaCode MarktSegment KurzBezeichnung Kundenstammtyp IstGesperrt KundenstammNr KundenstammKey KundenSegment KundenNummer KundenGruppe HerkunftsOrtscode Target 0,m 1 Source 0,m 1 KontoReferenz ReferenzTyp 1,m 1 <= PlzOrt 1 KontoBezeichnung ZusatzBezeichnung VerzeichnisEintrag PlzOrtAbgeleitet MutationsDatum LaufNr KontobezeichnungKey Bezeichnung AnschriftGross AnschriftAbgeleitet Anschrift 0,m 1 0,m KontoAktion Datum 0,1 JournalFB 0,1 1 FBData DummyDWH 0,m JournalElementM1 1 0,m Ursprung Stichwort Objecttyp Objecttitel MFromN Journalkey Erstelldatumzeit Benutzer 0,m0,m 0,m JournalElement Betr. Dst0,1 Bearb. Dst0,1 1 ObjectTyp ObjectTitel ObjectKey MFromN MandantId JournalKey eTnNr ErstellDatumZeit Benutzer JournalControl LastUpdate 0,m 1 JournalAltNeu Pos NeuString NeuInteger NeuDateTime AltString AltInteger AltDateTime HICWindow 1 0,m WindowName Subjekt Fenster Applikation HICWidget WidgetTyp WidgetName ReadOnly Ordering Label ErstellDatum DatenhoheitDst 0,m 1 Gesellschafter IstErsterGesellschafter GesellschafterKey GeloeschteKonti PostkontoNr FreieAListe ErstellerNr Bezeichnung FormulareArtikel 0,50 1 1 Anzahl 1 FormbriefVerzeichnis 0,m 1 0,m VerzeichnisKey MutationsDatum KapitelNr FormbriefBezeichnung 5 1 Sprache Bezeichnung Formbrief VorlageTyp UsageList PendenzVorhanden Pendenztyp Pendenzfaelligkeit Nummer Mutationsdatum MitRNummer MitPPVermerk MitLogo MitJournal MitDigitalerUnterschrift KundeVorhanden FormbriefKey BriefBeitritt BeilageNummer AusdruckHalbautomatisch AusdruckAutomatisch AnzahlKopien AdressverwendungTyp ExterneBezeichnungDetails 0,m 1 AuftragsId 0,m 1 ExterneBezeichnung LetzterZugriff Bezeichnung ExterneBezNr BenutzerName2 BezSaveCount BenutzerName1 Aktiv 0,1 0,1 0,1 0,1 0,m 0,1 => ESR 1 EsrBestellung Zahlungsvermerk TnNrDrucken ReferenzNr Preis FormularArt EigenesKonto CodierzeileDrucken BezeichnungFreitext BezeichnungDrucken Bezeichnung Betrag AnzahlKostenpflichtig Anzahl AnhangMitKontonr Anhang4 Anhang3 Anhang2 Anhang1 1 EsrBestellCtrl BezeichnungFreitext BezeichnungDrucken Bezeichnung Betrag Anzahl AnhangMitKontoNr Anhang4 Anhang3 Anhang2 Anhang1 ESBestellung Waehrung Schnitt Mtlg4Flags Mtlg4 ESAnschrift EigenesKonto Betrag Anzahl 1 ESBestellCtrl Mtlg4Flags Mtlg4 Schnitt EigenesKonto Waehrung Betrag ESAnschrift Anzahl ErstBestellDatum PostkontoKey ErstBestellung FormBriefNr MitZAG MitES Marktsegment ESAnschrift Artikel 0,m EnumerationType 0,1 0,m 1 0,m Publish Datenherr EnumType Klasse EnumTypeKeyExtern EnumTypeKey EnumTypeExtern Betrieb EnumerationText Sprache MenuPosition EnumTextKey EnumText 1 0,4 EnumerationLit Statusdatum Status Literal Invisible Id GDOVersionNr EnumLitKey EGAParam MitAuslandsGutschriften PauschalTaxWaehrung PauschalTaxBetrag MitBelegBild Losgroesse EBGruppe BankClearNr Auslieferinfo 0,m 1 EBParam VersandCodeGKAvis VersandCodeEBAvis PostKontoNr GueltigAbDatum GKAvisAdrVwdgOID EBParamKey EBGruppen EBAvisAdrVwdgOID AblaufDatum 0,m 1 0,4 Drucker 1 Typ Standort QueueName PSLevel2 MutationsDatum Druckerzugehoerigkeit DruckerName DruckerKey <= Belegkonto0,1 1 Geh rt-Zu 0,m0,m0,m Angestellt Dienststelle 0,m VZSZNummer PoststellenArt IstAufgehoben DienststellenTyp PersonTyp OrtsCode Kurzbezeichnung IstBetreuend 0,m 1 DienstPrivileg Zugriff MutationsDatum 0,1 DienstBezeichnung Sprache Bezeichnung 1 0,m 1 3 Dienst ZuweisungZugelassen MutationsDatum DienstNr AdminOhneUnterhaltWrite AdminMitUnterhaltWrite 0,1 0,1 0,30 11 DDBerechtigungImAbgang AufhebungsDatum 0,30 11 DDBerechtigung 0,1 ChargeNummer Status PostKontoNr ObjectKey Nummer Herkunft Erstelldatumzeit AuslandAdresse BeziehungPEDA LifecycleStatusdatum GDOVersion LifecycleStatus BeziehungOID Betreuer 0,10,1 Vorname TelefonNummerI TelefonNummerF TelefonNummerE TelefonNummerD PersonalNummer Name GDOVersion FaxNummer Dienststelle 0,m 0,1 1 0,2 Bestellung 1 Ursprung Uebermittelt SZPending Status SpezialVersandAdresse ProcolStatus MutationsDatum Lieferart KundenSprache ESPending CheckheftNr ChargeNr BestellungKey BestellDatum BestellArt AuslieferDatum AuslandAdresse Artikel Anzahl Adresse Bestellstatistik_SZ Datum AuftragsTypDetail AuftragsTyp Artikel AnzahlSet Anzahl 0,m Hat Zugriff auf 1 BenutzerRegion 1 WriteAccess AccessPersonSpecial AccessDienststelleNormal AccessFirmaNormal AccessDienststelleSpecial AccessPersonNormal AccessFirmaSpecial BenutzerNameMap 1,m1 Aktuell BenutzerName 1 0,m 1 BenutzerDienst BenutzerDienstKey 0,1 1 0,m Benutzer Vorname Visum Berechtigung UnterschriftDatum AdminSubjekt TelefonArbeitsplatz TelefaxArbeitsplatz Sprache PersonalNr Name MutationsDatum Kurzzeichen BerechtigungBemerkung BenutzerName AutoPendenz Anrede Aktiv 0,1 Signatur Image BelegID <= Kundenstamm 1 <= Dienststelle 1 BelegKonto Status LifeCycleStatus LifeCycleStatusDatum Statusdatum Sprache PlzDomizil Mutationsdatum Bezeichnung BelegKontoNr AdressverwendungOID AufhebungsDatum 1 0,m BelegId BelegId 0,1 0,1 1,m AvisierungPK 1 0,2 PrivatKtoAzgVar PostkontoKey GueltigAbDatum GSEreignisorientiert AvisierungKey LSZAGEreignisorientiert AktivierungsDatum LSEreignisorientiert AvisierungKanalErm 1 1 0,4 AvisierungKanalErmKey GueltigAbDatum PostkontoKey 0,2 AvisierungKanal 1 ViaPost GueltigAbDatum PostkontoKey AktivierungsDatum AvisierungKanalKey EKontoListen AvisierungGK 0,12 1 Wochentag AdressAuswahl AvisierungKey GueltigBisDatum Listen Periodizitaet AktivierungsDatum GueltigAbDatum BelegBild DokumentNr PostkontoKey 1 Avisierung ZagLsVar PostwegDokuTypList Mutationsdatum KontostandAdressAuswahl KanalRejectAvis eMailRejectAvis AvisierungsTyp 0,1 1 0,m Attribute AttributTyp AttributArt 0,1 0,m 1 ArtikelTeil Teil PapierSpezKey Artikel 1 1,5 ArtikelSpezifikation PsHeader Artikel ArtikelGruppeBezeichnung Sprache Bezeichnung 1 5 ArtikelGruppe ArtikelSubgruppeNummer ArtikelGruppeNummer ArtikelGruppeKey ArtikelEDVSprache 0,5 1 Sprache EDVNummer ArtikelEDVScanOC ScanOC EDVNummer 0,m 1 0,m 1 ArtikelDrucker DruckerKey Artikel Artikelbezeichnung Sprache Bezeichnung 0,m 0,m1 1 0,5 1 5 Artikel TopArtikel MaxAnzahl EDVNummer DefaultAnzahl ArtikelTyp ArtikelNummer ArtikelArt Aktiv AListeElement Klasse Information ErstellDatumZeit ErledigungsBenutzer Backoffice AlisteElementKey 0,1 0,1 AdressVerwendung Sprache PlzOrtOID Plz Ort LifecycleStatusDatum LifecycleStatus Land GDOVersionNr AdressverwendungOID AdresszuordnungOID => AV1 Absenderangaben Adressbild AbsenderAdresse Ort PLZ Hausnummer Anschrift3 Anschrift2 Anschrift1 Land Zinskondition => Kundenstamm Vollmachtsregelung PostKonto Pooling GesellschafterGesellschaft Person Kundenstamm Journal/Pendenzen Formbrief Druckerkonfiguration Beziehung PEDA Bestellung BelegKonto Avisierung Artikel KUDA - OOA Modell Version 38.0 / RE012A Adresse kuda.ooa : <frame> - printed by STETTLERJUE on Wed Jan 25 17:04:50 2012
  • 21. 1/10/2015 ZVIS—A Financial System in Ada 31 DLRestgeld 1 Rundung MutDatum MutAnzahl <= ETrade1 1 eTradeErmaechtigung 1 PoolAuslErmaechtigung 0,101 MitTransferListe SWIFT TableAccess TransIdMajor TableId Table Access Freizuegkeitskonto eUsers =>1 FreizuegigkeitsKontoErm FreizuegigkeitsKontoErmKey FreizuegigkeitsKontoBez Anschrift AnschriftAbgeleitet ZusatzBezeichnung Postkonto ==> 0,1 DienstleistungTeilnahme ==> 1 10,99 1 1 FreizuegigkeitsKonto SetSperre PersonalNrAbschluss OrtscodeVermittlung OrtscodeAbschluss SVNr StatusDatum Status PersonalNrVermittlung AHVNr Bezeichnung BeitrittsDatum FreizuegigkeitsKontoNr MutationsDatum LifecycleStatus LifecycleStatusDatum AuftAuslErmEo 1 1 TextDetailliert Sprache KontoAlias IstAktiv AuftDocAusloeserList KtoAuslErmEo Waehrung UntereLimite TextDetailliert Sprache ObereLimite KtoDocAusloeser KontoAlias IstAktiv KtoAuslErmTerm GueltigBisDatum GueltigAbDatum BenachrichtigungErm 1 1 UntereLimite TextDetailliert Sprache ObereLimite KontoAliasEF KontoAlias IstAktivDatum IstAktiv EZAGMFBLohn EZAGMFB EZAGFreigabeLohn EZAGFreigabeKreditor BenachrichtigungsArt BenachrichtigungErmKey DelayedChecks ObjectKey CheckType BenutzerNr 0,m SWIFTErmaechtigungEZAG 1 0,m 1 AuftragFreigabe SWIFTErmaechtigungEZAGKey SWIFTDefaultKonto 0,m 1 Waehrung SWIFTDefaultKontoKey 0,m SWIFTErmaechtigung 1 0,m 1 SWIFTErmaechtigungKey 0,m ETSWIFT 1 BIC ETSWIFTKey BicStammSWIFT SWIFTAdresse Ort Name BicStammSWIFTKey eRechnungeTeilnahmeMap 0,m 1 0,m 1 eRechnungTeilnahmeXmit Geburtsdatum Firma Benutzername Art eUsersIntern LetzteLogin 1 PreisDetailArt PostKontoNr KredAvisParamKontoKey IoMediumEinzelBest IoMediumAusfuehrungsBest DokutypListe AdressverwendungOID IoMediumAuftragsBest BetragDarstellungArt AuslieferungsNr FehlerAvisEinmalig FunktionsTyp NummerReservierung PostKontoArt Nummer Datum ZinsKondKey ZinsVerteilungDauer ZinsModellGruppe ZinsModell VstSatz StartDatum SollUsanz SollZinsSatz ZentralDruckAuftragFB ZentraldruckAuftragKey Sprache FBData ZentralDruckAuftrag ZentraldruckAuftragKey Uebermittelt ObjectKey FormbriefNr eTnNr ErstellDatumzeit Benutzer AuftragTypDetail Auftragtyp ZAGIntervention => Postkonto 1 ZAGInterventionKey ZAGIdent Nr MutationsDatum InterventionsDatum GueltigBisDatum Grund eRechnungTeilnahme => Person 1 Nr Statusdatum TeilnahmeKey Art 0,m => Waehrung 0,m 0,m Waehrung0,m SapKuerzel WaehrungKey Waehrung TaxZinsRundung SadWaehrungsCode IstKontowaehrung IstEuroWaehrung ISOWaehrungsCode GueltigBis BetragsRundung VorsorgekontoErmaechtigung 0,m 1 0,m 1 0,m VorsorgekontoDaten 1 Zivilstand VSTIAdressverwendungOID VorsorgekontoNr Vorname VerpfaendungHypothek SVNr StatusDatum Status PersonOID Nationalitaet Name Geschlecht Geburtsdatum Eroeffnet Eintragzeit DMZAdressverwendungOID BVGPensionskasse AHVNr Bemerkung Anrede => Kto 0,1 0,m 1 0,m Vorsorgekonto => AV 1 DLT ->1 Hauptkontokey SetSperre Zivilstand WEFVorbezugDatum WEFVorbezugBetrag AusbezahltBankadresse Pfandglaeubiger PersonalNrAbschluss Status PersonalNrVermittlung AusbezahltKonto AusbezahltBetrag BeitrittsDatum AusbezahltGrund AusbezahltDatum AHVNr StatusGrund VorsorgekontoKey VerpfaendungHypothek VerpfaendungDatum MutationsDatum Bezeichnung LifecycleStatusDatum Bemerkung OrtscodeAbschluss FaelligkeitsDatum VerpfaendungBetrag Verpfaendung SVNr OrtscodeVermittlung StatusDatum BVGPensionskasse Waehrung LifecycleStatus AHVBriefDatum VorsorgekontoNr <= Unterschriftskarte 0,m 0,m Versicherungen 1 1 Zahlungsmodus Zahlungskanal Vorname Vertragsnummer Vertragsdauer Vertragsbeginn VersicherungKey Status Produkt Praemie OrtscodeBetreuer OrtscodeAbschluss Name Leistungsfall GarantierteLeistung Art 0,m SystemParameter SystemParameterKey SavedTimeStamp DatenbankID SysParam Wert Typ SysParamKey Name Switzerland Verkaufsregion ScanOC PlzBis SperrFallCheckSerie 1 0,m SperrGrund CheckTyp CheckHeftNr AlteSerie SICAbleitungKonto <= PostKonto 1 0,m 1 SwiftAdresse SicTeilnahmeArt SchoeneNummern VZSZNummer Schoenheitsgrad NrAdminType Muster IsSource Disabled 0,m 0,m SADErmaechtigung 1 1 Taxkonto 1 SADErmaechtigungKey RedaktionsSchluss 1 ListeCode DatumZeit Benutzer <= Postkonto (PricingRef) 0,m <= Postkonto => Postkonto1 0,1 Verarbeitungsdatum 0,m <= Pool 1 => ePoolErm <= ZinsKondPool1 1,m => DLT 1 0,m Sprache Waehrung Verarbeitungsdatum Variant UbzgLim UbzgFrist TaxZusatzBetrag TaxGrundBetrag StatusGrund StatusDatum Status SaldoreportGueltigAb NrVerwaltung NrVon NrType NrBis Funktion Benutzer Bemerkung NotifikationKU PostkontoKey ErstellDatumZeit KundenStammKey NotifikationTyp NotCheck NotCheckKey CheckHeftNr NormVersicherung Bonusart Bonus MinussaldoFB ChargeNr Filename PostkontoNr FormbriefNr Datum MarketingAktionBez 3 1 Sprache Bezeichnung 0,m <= MktAktion 0,m 0,1 MarketingAktion => 0,m MarketingAktion 0,m0,m VRListe Nummer KundeEroeffnung KontoEroeffnung GueltigBis GueltigAb DLTListe1 DLTListe0 LoeschWoerter Wort Laufnummern Nummer Id Datum KudaParam ParamString ParamInt ParamDatetime Id 1,m KredAvisParam 1 AuftraggeberDokuList AuftraggeberAuslNr AuftraggeberAdrVwdgOID AblaufDatum KontoAvisDef 1 GueltigBisDatum GueltigAbDatum DokumentNr AvisDefKey KleindruckKontrolle DienststelleKey Automatic Auftragtyp KleindruckAuftrag 1Status ObjectKey KleindruckAuftragKey Flag2 Flag1 ErstellDatumzeit Benutzer Auftragtyp 0,m KartengeldVertrag <- DLT 1 PersonOid KartengeldVertragOid MinimaleZeichnungsArt 0,1 UserId2 UserId Ursprung UnternehmensNr Stichwort PostKontoNr PEDAPersonKey ObjectTyp ObjectTitel ObjectKey MFromN JournalControl LastUpdate IdKarteAntragDaten LaufNr BestellDatumZeit EroeffnungDatum KundenStammKey eUserKey 0,m Postkonto => 1 Hypothek 1 Statusdatum Status ReferenzNr HypothekKey GesperrterCheck IstASerie GesperrterCheckKey CheckNr Betrag AusstellDatum FreieAListe KlisteId Id Erstellungsdatum ErstellerNr Bezeichnung FondVersicherung Anteile Fonds -> FondsDagDetails0,m FestGeldZinsen Zinssatz GueltigPer Waehrung LaufZeitNr 1 0,1 1 Festgeld Statusdatum Status ReferenzNr FestgeldKey Auslieferung => 0,m 0,m 0,1 0,10 1 1 => Person1 eUsers AV <= 1 1,m 1 Yellowbill SigAusgeschlossen Upload eUserKey Uploaddatum Statusdatum Status SigAusGrund Id DownloadReports Download BeziehungKey 1 eTTechnisch IOKanal2 IOKanal Funktionstyp DatentraegerZusatz Datentraeger2 DatentraegerZusatz2 Datentraeger 0,m eTSAD 1 eTnNr => Euser 1 0,1 => Postkonto 0,1 => NP 0,1 eTrade 0,2 1 BeziehungKey eTMerchantID 1 MerchantID 0,m 1 eTeKonto<= AV 1 <= DLT 1 TechTeilnahme PersonalNr eTnNr Ortscode KtoVerzeichnisZugriff HerkunftTyp 0,m 0,1 0,m 1 EteilnahmeVESR AuslieferungsNr eTeilnahmeErmaechtigungen 0,m 1 DlTnNr TaxKontoNr PostKontoNr Art 0,m 0,m 1 1 0,2 1 0,1 0,10 0,1 0,m 1 0,2 1 0,1 eTeilnahme 1 0,1 1 0,1 0,1 0,m 1 0,2 AV <= 1 Statusdatum Status Nr Mutationsdatum LifeCycleStatusDatum LifeCycleStatus Fixiert 0,m <=DebitDirect -> eTDebitDirect 0,m ETDebitDirect <=DLT 1 eTnNr 0,m 0,1 eTBestellung 1 eTnNr Uebermittelt SZPending Sofortversand FormbriefNr PasswordPlain KarteIdNummer ChargeNrAusland eTBestellArt ChargeNr BestellungKey BestellDatumZeit eTAuftragsParam TeilnehmerArt MitVorgezogenenZa MitDirektsuche IstRentenAnlieferung MitVorgezogenenAusland MitNachforschungsRef IstAHVKasse MitAHVAbsender 0,m 0,m 1 Zahlungsvermerk TnNrDrucken ErstBestellDatum TnKontoNr ReferenzNr FormularArt EigenesKonto CodierzeileDrucken BezeichnungFreitext BezeichnungDrucken Bezeichnung Betrag Anzahl 1 EsrAbgabeKontrolle Anzahlkostenpflichtig Anzahl Bestelldatum TnKontoNr Waehrung 1 ESAbgabeKontrolle BestellDatum Anzahlkostenpflichtig Anzahl ErmaechtigungsKarte => Dienststelle0,1 0,6 1 StatusGrund StatusDatum Status ProcolStatus MutationsDatum ErmaechtigungskarteKey AuslieferDatum ErfassungsFehler Fehler Datum 1 ePoolErmaechtigung Zeichnungsart IstPoolManager EnumMapping ParentId ParentEnumType MenuPosition Id Gueltig GParentId GParentEnumType EnumType 0,m 0,m 1 eKontoErmaechtigung 1 ZeichnungsartKreditLohn ZeichnungsartKredit ZeichnungsartDebit SaldoSichtbar MutationsDatum LohnSichtbar FremdAuftraege BuchungenSichtbar AuftragErfassbar eDepotDetails AuftragsId DlZag ShowWaehrung DlSpezialTaxe PauschalArt Abrechnung DlSpezialLimite UbzgLim UbzgFrist HerkunftUbzg HerkunftCheckinkasso CheckInkassoLim DlPFKKarte VisaPlatinum VisaGold VisaClassic VisaBusiness Reserve MastercardValue AlumniUZH MastercardGold MastercardStandard DlPCVISA KartenAnzahl DlPCC KartenAnzahl DlMinussaldoMeldung Abmachung DlKontoKorrentKredit ReferenzNummer => DLGKEGA (Settlement)0,m DlGKEGA 0,1 0,2 1 MitAuslandsGutschriften StueckelungArt PauschalTaxe MitBelegBild Losgroesse Auslieferinfo EbGruppe => DLGK (MApping)0,1 DlGK 0,500 VersandCodeAvis EBGruppen DlEB VersandCodeAvis EBGruppen 1 1 0,m <= DLT 0,m <= Adressen 0,1 0,m FreizuegigkeitsKonto <== 0,1 1 0,m DienstleistungTeilnahme 0,m 0,m StatusGrund StatusDatum Status PstPersonalCode MutationsDatum LifeCycleStatusDatum LifeCycleStatus IgnoreTimeout Hinterlage HerkunftTyp HerkunftNr EroeffnungDatum DienstleistungTeilnahmeKey DienstleistungArt CheckheftNr AusnahmeDatumVon AusnahmeDatumBis Dienstleistungen KtoGueltig KndGueltig FuerKunde FuerKonto DienstleistungArt 1 Devisen StatusDatum Status ReferenzNr DevisenKey 1 DepotReferenz IstHauptKonto DepotReferenzKey DepotParam 1 1 Sprache DomizilLand AdressverwendungOID 0,m 1 DepotErmaechtigung => DepotErmaechtigung0,m 1 Zeichnungsart FremdAuftraegeVerwalten DepotErmaechtigungKey BestandAbfragen AuftraegeErfassen DepotBezeichnung ZusatzBezeichnung Bezeichnung AnschriftAbgeleitet Anschrift -> Auslieferung1 DepotAvisierungKanalErm GueltigAbDatum DepotKey 1 1 0,4 DepotAvisierungKanal AktivierungsDatum ViaPost GueltigAbDatum -> Auslieferung 1 1 DepotAuslieferungsErm GueltigBisDatum GueltigAbDatum DepotAuslieferungsErmKey => A-Liste0,m 10,1 => Marketingaktion1 0,1 1 1 1 0,5 1 0,m 1,2 -> DepotAuslieferungsErm0,8 Depot <= Adressen 1 StatusGrund StatusDatum Status Bezeichnung PersonalNr MitWiederanlage LifecycleStatusDatum LifecycleStatus DepotNr DepotKey BezeichnungFreitext Beitrittsdatum Ortscode Mutationsdatum Herkunft KurzBezeichnung KurzbezeichnungFreitext 0,m 0,m -> Taxkonto 0,1 0,1 0,m 1 DebitDirectTeilnahme -> DD-Ausl 0,1 -> Auslieferung 1 -> AV 1 WochenLimit TeilnehmerArt TagesLimit StatusGrund StatusDatum Status SaLimit Nr Mutationsdatum MonatsLimit eTnNr EmailAdresse MitWiderspruchsrecht MitDeckungsPruefung MFBRegelTest MFBRegel KontoBezLimit HPVE ExpressLimit EaLimit BeitrittsDatum AusnahmeBEKontrolle 1 DebitAvisParam AblaufDatum 0,1 0,5 1 Checkserie StatusGrund StatusDatum Status ProcolStatus Mutationsdatum IstASerie CheckTyp CheckserieKey CheckHeftNr ChargeNr Auslieferdatum ArtCheckTyp Anzahl BilanzKalender TagesArt Datum AusserOrdentlich Datum BerechtigungVerlustFall 0,11,m VerlustMeldungVorhanden VerlustMeldeDatumZeit VerlustDatumZeit StatusGrund StatusDatum Status ProcolStatus MutationsDatum BerechtigungVerlustFallKey BerechtigungSperrFall StatusDatum Status SperrFallTyp SperrDatumZeit MutationsDatum BerechtigungSperrfallKey 0,m Hauptsitz BankClearing 0,1 WandlungPostKontoNr Updated SICAbwicklung Ort NrExtern Name BankClearingNrZukunft BankClearingNr AvisParam <= AV 1 <= AV (Zusatz) 0,1 1,m 1 ZagLsVar Sprache PostKontoNr PLZ Land KanalRejectAvis IsKeyKunde GueltigAbDatum Gueltig eMailRejectAvis EKontoListen AvisParamKey AvisierungsTyp AblaufDatum 1 0,m AvisDef wochentag Periodizitaet PapierVersandArt AdressAuswahl BelegBild Dokument PrivatKtoAzgVar Listen AvisDefKey AutonomeVerarbeitung Zeile Typ FileName 1 KtoAuslErm 1 KtoAuslErmKey Ereignisorientiert 0,1 1 Anlagen StatusDatum Status ReferenzNr AnlagenKey <= Postkonto 0,1 Kundenstamm =>0,1 1,m 0,1 Depot =>0,1 Zugriffsklasse StatusDatumZeit Status SpecialInfo Ordering OperationCentre ObjectTyp ObjectTitel ObjectKey NOKGrund Klasse Information ErstellDatumZeit ErledigungsBenutzer eRechnung Vorsorgekonto Versicherung Sperren / Verlust KartengeldVertrag Diverses Dienstleistungen Depot Debitdirect Data Transfer Banken Postkonto (PricingRef) => Postkonto (PricingRef) => Aktivgeschaeft
  • 22. 1/10/2015 ZVIS—A Financial System in Ada 32 <= ETrade1 1 eTradeErmaechtigung <= PoolAuslErm 0,m PoolAuslieferung PoolAvisTyp AuftragsFehlerISO 0,1 1 StatusReasonCode ProprietaryCode SapKonto 1 0,1 1 0,1 MutationsDatum SapKontokey Bezeichnung Gueltig Nr Freizuegkeitskonto eUsers =>1 FreizuegigkeitsKontoErm FreizuegigkeitsKontoErmKey FreizuegigkeitsKontoBez Anschrift AnschriftAbgeleitet ZusatzBezeichnung Postkonto ==> 0,1 DienstleistungTeilnahme ==> 1 10,99 1 1 FreizuegigkeitsKonto SetSperre PersonalNrAbschluss OrtscodeVermittlung OrtscodeAbschluss SVNr StatusDatum Status PersonalNrVermittlung AHVNr Bezeichnung BeitrittsDatum FreizuegigkeitsKontoNr MutationsDatum LifecycleStatus LifecycleStatusDatum 0,m 0,m SWIFTSortCodes Land Code SWIFTErmaechtigungEZAG 1 0,m 1 AuftragFreigabe SWIFTErmaechtigungEZAGKey 0,m 1 Waehrung SWIFTDefaultKontoKey SWIFTErmaechtigung 1 0,m 1 SWIFTErmaechtigungKey 0,m ETSWIFT 1 BIC ETSWIFTKey BicStammSWIFT SWIFTAdresse Ort Name BicStammSWIFTKey eRechnungeTeilnahmeMap 0,m 1 0,m 1 eRechnungTeilnahmeXmit Vorname TeilnahmeKey PLZ Ort Op Nr Name Mutationsdatum Landcode Geburtsdatum Firma Benutzername Art eUsersIntern LetzteLogin TransaktionGruppe 0,3 1 Gruppierungswert Gruppierungskriterium EKAuslieferungNeu GLAvisLimite GLAvisTaxArt BIC TaxkontoKey GueltigAbDatum Preis 0,m 0,m ZentralDruckAuftragFB ZentraldruckAuftragKey Sprache FBData ZentralDruckAuftrag ZentraldruckAuftragKey Uebermittelt ObjectKey FormbriefNr eTnNr ErstellDatumzeit Benutzer AuftragTypDetail Auftragtyp eRechnungTeilnahme => Person 1 Nr Statusdatum TeilnahmeKey Art WirtschaftlicheBerechtigung WerbungSgmntMap MarktSegment KundenSegment KundenGruppe10,m Werbung 1 1,4 WhgArtListe WerbKey Segmentierung Prioritaet MutationsDatum KontoTypListe KontoArtListe GueltigBis GueltigAb FondsDokuTypListe DokumentListe Bezeichnung WerbeText WerbKey Text Sprache Watchdog Zeit => Waehrung VorsorgekontoErmaechtigung 0,m 1 0,m 1 0,m VorsorgekontoDaten 1 Zivilstand VSTIAdressverwendungOID VorsorgekontoNr Vorname VerpfaendungHypothek SVNr StatusDatum Status PersonOID Nationalitaet Name Geschlecht Geburtsdatum Eroeffnet Eintragzeit DMZAdressverwendungOID BVGPensionskasse AHVNr Bemerkung Anrede VorsorgekontoBezeichnung Anschrift ZusatzBezeichnung AnschriftAbgeleitet => Kto 0,1 1 0,m Vorsorgekonto => AV 1 DLT ->1 Hauptkontokey SetSperre Zivilstand WEFVorbezugDatum WEFVorbezugBetrag AusbezahltBankadresse Pfandglaeubiger PersonalNrAbschluss Status PersonalNrVermittlung AusbezahltKonto AusbezahltBetrag BeitrittsDatum AusbezahltGrund AusbezahltDatum AHVNr StatusGrund VorsorgekontoKey VerpfaendungHypothek VerpfaendungDatum MutationsDatum Bezeichnung LifecycleStatusDatum Bemerkung OrtscodeAbschluss FaelligkeitsDatum VerpfaendungBetrag Verpfaendung SVNr OrtscodeVermittlung StatusDatum BVGPensionskasse Waehrung LifecycleStatus AHVBriefDatum VorsorgekontoNr <= Unterschriftskarte 0,m VarDagEndbeguenstigter 1 1,51 VarDagEndbeguenstigterKey Replicate Mitteilungen LaufNr Endbeguenstigter Betrag BankKontoNr Anteil => PostKonto VarDagDetails TaxLastKontoKey TaxBetrag Splitting RestSaldo Replicate ProzentSatz MonatsTaxe MinAusloeseSaldo Betrag Berechnungsart AuftragsArt 0,m TransaktionTaxe 0,m 1 1 TransaktionEditOption 0,m 1 TaNr FieldType FieldName TransaktionBez 3 1 Sprache Bezeichnung 0,m Sollkonto 0,m Habenkonto Transaktion 1 1,m 0,1 0,1 ZBKSoll ZBKHaben Nr MutationsDatum BuchungsKlasse BuchungsArt AvisFlag Art TaxGruppe 1 3 TaNrBuchung Gueltig SofortBuchen PauschalArt Nr MutationsDatum TaxGrpBez Sprache Bezeichnung TaxElementPrio Prioritaet MitTaWaehrungsArt MitPricingArtPK MitPostKontoTyp MitMarktSegment MitKontoWaehrungsArt MitKundenGruppe MitKundenSegment TaxElement <= DLT 0,1 0,m 1 0,m 1 Typ TaxWaehrung TaWaehrungsArt PostKontoTyp MarktSegment KundenSegment KundenGruppe KontoWaehrungsArt FixMaxBetrag PricingArtPK 0,m 0,1 Taxe 1 3 Pos MutationsDatum Manuell Gueltig MitTaxStufen MitFreitext MitBerechnung Individuell DlArt TaxBez Sprache Bezeichnung TaxBereich TaxSchritt UntereLim TaxOffset Schritt ObereLim TaBilanzPF ValutaTag PricingPkTaGruppe PricingGkTaGruppe EBGruppe BBGeometrie BBAvisieren AvisListe AoAvisierungGrund 0,m TaBilanz 1 Dienst 0,1 UmrechnungsOption MaxBewertungsabweichung Manuell Gueltig FwTaArt BuchArtSelListe SQR_Temp StatusGrund StatusdatumP StatusdatumDl StatusdatumB Status SperrFallTyp PostKontoNr Keyfield2 Keyfield1 KartenNr CheckTyp CheckNr CheckHeftNr Bezeichnung Betrag Ausstelldatum AlteSerie SonderAuslieferung 0,12 1 Datum AuslieferungsNr SICAbleitungKonto <= PostKonto 1 0,m 1 SwiftAdresse SicTeilnahmeArt SetNotifikationKonto 0,m 1 1 StatusDatum Status BenutzerFormbrief BriefUnterdrueken PricingSetKey KundenStammKey ErinnerungsbriefAm Art HauptkontoKey SetNotifikation 1 CouponheftStartDatum CouponheftVersandDatum KundenStammKey Art 0,m RekaKonto 1 ZusatzBezeichnung Waehrung UbzgLim StatusGrund StatusDatum Status Sprache RekaKontoKey MutationsDatum LifeCycleStatusDatum LifeCycleStatus KontoTyp KontoNr KontoBezeichnung CallId Bilanzkreis 1,m 1 1 0,1 PricingSet 1 TaxBefreiungBis StatusDatum Art <= Postkonto (PricingRef) <= TaxKonto <= Postkonto => Kto (Ersatzkto) => GSkonto => Taxkonto OpKonto KontoNr Bilanzkreis Bereinigt AuszifferArt ChargeNr Filename PostkontoNr FormbriefNr Datum <= MktAktion => Land 0,1 1,m KredAvisParam 1 SpracheLieferant SpracheAuftraggeber PreisDetailArt LieferantDokuList LieferantAuslNr LieferantAdrVwdgOID KredAvisParamKey IOMediumEinzelBest IOMediumAusfuehrungsBest IOMediumAuftragsBest GueltigAbDatum Gueltig FunktionsTyp FehlerAvisEinmalig BetragDarstellungArt AvisDokumente AuftraggeberDokuList AuftraggeberAuslNr AuftraggeberAdrVwdgOID AblaufDatum KleindruckAuftrag 1Status ObjectKey KleindruckAuftragKey Flag2 Flag1 ErstellDatumzeit Benutzer Auftragtyp FondsKommissionCAP IOMedium CAPBetrag Kondition FondsKommission ProzentSatz Kondition IOMedium AuftragsArt 0,m 0,m 1 0,m 1 FondsDefinition 0,1 ZielFonds WiederanlageErlaubt Waehrung VerwaltungsKommissionsart MinBetragErstzeichnung ValorenNummer FondsPerformanceAnzeigen VerwaltungsKommission VerarbVerzoegerung Typ StichDatum Status Risiko MitAusschuettung MinBetragRuecknahme Kategorie IstPFFonds IstAffidavit ISINNummer Gesellschaft FondsPlanErlaubt FondsEntnahmePlanErlaubt ErfassungsDeadline EndDatum DienstNr AnteilsFraktionenErlaubt AnlageHorizont Bezeichnung AnlageStrategie BetragsErfassungErlaubt AusgleichKontoNr AnzeigeInUmsystemen Besteuerung MinBetragFondsplan MinBetragFolgezeichnung MaxPreisabweichung EinfuehrungsDatum -> FondsDagDetails0,m 0,m 1 FondsDagDetails => Depot 1 RestSaldo Replicate PersonalNrVermittlung PersonalNrAbschluss OrtscodeVermittlung OrtscodeAbschluss MinAusloeseSaldo KommissionsSatz CAPBetrag Betrag BerechnungsArt ExpressPreis TaxBetragEa EAArt Auslieferung => 0,m 0,m 0,1 0,10 1 1 => Person1 eUsers AV <= 1 1,m 1 Yellowbill SigAusgeschlossen Upload eUserKey Uploaddatum Statusdatum Status SigAusGrund Id DownloadReports Download BeziehungKey 1 eTTechnisch IOKanal2 IOKanal Funktionstyp DatentraegerZusatz Datentraeger2 DatentraegerZusatz2 Datentraeger eTSAD 1 eTnNr eTMerchantID 1 MerchantID <= AV eTKredAvis 1 PreisDetail LieferantDokuList IOMediumEinzelBest IOMediumAusfuehrungsBest IOMediumAuftragsBest GueltigAbDatum FunktionsTyp FehlerAvisEinmalig BetragDarstellungArt Avisdokumente AuftraggeberDokuList AktivierungsDatum 1 eTeKonto<= AV 1 <= DLT 1 TechTeilnahme PersonalNr eTnNr Ortscode KtoVerzeichnisZugriff HerkunftTyp 0,m 0,1 0,m 1 EteilnahmeVESR AuslieferungsNr eTeilnahmeErmaechtigungen 0,m 1 DlTnNr TaxKontoNr PostKontoNr Art 0,m 0,m 1 1 0,2 1 0,1 0,10 0,1 0,m 1 0,2 1 0,1 eTeilnahme 1 0,1 1 0,1 0,1 0,m 1 0,2 AV <= 1 Statusdatum Status Nr Mutationsdatum LifeCycleStatusDatum LifeCycleStatus Fixiert 0,m <=DebitDirect ETDebitDirect <=DLT 1 eTnNr <= AV eTDebitAvis 1 VerarbMeldTyp LieferantDokuList IOMedium GueltigAbDatum FehlerAvisEinmalig AvisDokumente AuftraggeberDokuList AktivierungsDatum 0,m Uebermittelt eTAuftragsParam TeilnehmerArt MitVorgezogenenZa MitDirektsuche IstRentenAnlieferung MitVorgezogenenAusland MitNachforschungsRef IstAHVKasse MitAHVAbsender 1 1,m eSteuerMechanismen ZeitVon ZeitBis MaxAnzahlEa KontoArt EsmKey AuftragsArt EsrTeilnahmeParam 1 1 TnKontoNr TeilnahmeNr SuspendiertBis Suspendiert StatusDatum Status RejectEmpfaenger PortefeuilleOID KanalRejectAvisTeiln KanalRejectAvisAusl KanalGsAufteilung IsKeyKunde EncodeRejectAvisTeiln EncodeRejectAvisAusl eMailRejectAvisTeiln eMailGsAufteilung Bezeichnung AuslieferungsNrTest AuslieferungsNr AdrSprache 0,m => DAG 0,m 0,1 => EsrBestellCtrl 0,m => EsrAbgabeKontrolle 0,m => ESRBestellung Normal 0,m => AL Test 0,m => AL-Test 0,1 1 EsrTeilnahme BankClearing <= 0,1 Adressen <= 1 => DLT 1 1 0,1 ZuGunstenDritter TnKontoNr TaxBelasteter TaxBankKontoNr SuspendiertVon SuspendiertBis Suspendiert Statusgrund StatusDatum Status RejectEmpfaenger PauschalTaxWaehrung PauschalTaxBetrag MutationsDatum LifeCycleStatusDatum LifeCycleStatus KanalRejectAvisTeiln KanalRejectAvisAusl KanalGsAufteilung Fixiert FIPOAbfrageErlaubt EncodeRejectAvisTeiln DAGFaehig eMailRejectAvisTeiln EncodeRejectAvisAusl eMailGsAufteilung Beitrittsdatum AbschlagZhlgTaxfrei AufhebungsGrund AufhebungsDatum ErsatzKontoArt ErsatzBankClearNr BezeichnungGross BezeichnungFreitext Bezeichnung Beschleunigt AbschlagZhlgTaxart 1 0,6 1 EsrGutschrift Prozent EndBeguenstigter BankKontoNr IstErstKonto EsrGutschriftKey 1,41 EsrBelegart Reihenfolge Belegart ErledigungsHinweis 0,5 0,m Text Sprache Nr 0,m 1 0,1 EKAuslieferung ZusatzWochentag ZusatzPeriodizitaet Zeitpunkt3 Zeitpunkt2 Zeitpunkt1 Wochentag Preis Intervall GLAvisTaxArt Bildformat Periodizitaet Partnerkategorie KontoAzgAuchOhneBuch GLAvisLimite KontoAvisTyp eDepotDetails AuftragsId eDagDetails Replicate eTnNr AuftragsId EAAuslieferungsParam 0,11 Wochentagen Periodizitaet Monatstag2 PortefeuilleOID Monatstag1 Verschluesselung StatusDatum Status VZSZNummer eTnNr Jahresende MediumZusatz IOKanal Datenmedium AuslieferungsNr Datenformat Dateiname AdressverwendungOID Prioritaet EmailAdresse 0,m0,m EAAuslieferung Wochentagen Periodizitaet Monatstag2 Monatstag1 StatusGrund Jahresende AufhebungsGrund AufhebungsDatum EroeffnungsDatum Prioritaet => DLGKEGA (Settlement)0,m => DLGK (MApping)0,1 <= DLT 1 DepotReferenz IstHauptKonto DepotReferenzKey DepotParam 1 1 Sprache DomizilLand AdressverwendungOID 0,m 1 DepotErmaechtigung => DepotErmaechtigung0,m 1 Zeichnungsart FremdAuftraegeVerwalten DepotErmaechtigungKey BestandAbfragen AuftraegeErfassen DepotBezeichnung ZusatzBezeichnung Bezeichnung AnschriftAbgeleitet Anschrift -> Auslieferung1 DepotAvisierungKanalErm GueltigAbDatum DepotKey 1 1 0,4 DepotAvisierungKanal AktivierungsDatum ViaPost GueltigAbDatum -> Auslieferung 1 1 DepotAuslieferungsErm GueltigBisDatum GueltigAbDatum DepotAuslieferungsErmKey => A-Liste0,m 10,1 => Marketingaktion1 0,1 1 1 1 0,5 1 0,m 1,2 -> DepotAuslieferungsErm0,8 Depot <= Adressen 1 StatusGrund StatusDatum Status Bezeichnung PersonalNr MitWiederanlage LifecycleStatusDatum LifecycleStatus DepotNr DepotKey BezeichnungFreitext Beitrittsdatum Ortscode Mutationsdatum Herkunft KurzBezeichnung KurzbezeichnungFreitext 0,m TestNormal 0,m 0,1 WochenLimit TeilnehmerArt TagesLimit StatusGrund StatusDatum Status 1 DebitAvisParam VerarbMeldTyp SpracheLieferant SpracheAuftraggeber LieferantDokuList LieferantAuslNr LieferantAdrVwdgOID IOMedium GueltigAbDatum Gueltig FehlerAvisEinmalig AvisDokumente AuftraggeberDokuList AuftraggeberAuslNr AuftraggeberAdrVwdgOID AblaufDatum DDAuslieferung Wochentag Variante RblDurchEMail Periodizitaet AusfuehrungsTag RblEmpfaenger 10,1 => DLT1 DauerAuftrag WochenTag Typ StatusGrund StatusDatum Status Periodizitaet NrIntern Nr Nachdatieren Mutationsdatum LetztDatum GueltigAbDatum ErstDatum DauerAuftragKey BelegVar AusfuehrungsTag => AufgabeWaehrung 1 => ZielWaehrung 1 => PostKonto 0,1 => ESR 0,1 DagDetails Taxe SEPAZahlung Replicate Mitteilungen EsrReferenzNr Endbeguenstigter EmpfaengerID BankKontoNr BankClearingNr AuslandFinanzInstitut AuslandBlz Auftragsart AuftraggeberReferenz AuftraggeberID AufgabeBetrag AbsenderText 0,1 0,m DAGAbrufGruppen Typ AbrufZeit AbrufGruppe 5 1BuchText Text Sprache BuchhaltungsKontoGrpBez 3 1 Sprache Bezeichnung BuchhaltungsKontoGrp Nr MutationsDatum BuchhaltungsKontoBez 5 1 Sprache Bezeichnung BuchhaltungsKonto 1 1,m Typ MutationsDatum KontoNr Art Abstimmung 1 BkBilanz Gueltig 0,m Bilanz MandantId Bilanzkreis BeilageDef 1 3 VzNr Schacht MutationsDatum KontoListeKey KeinKSM GueltigBis GueltigAb DokumentArt Dicke BeilageKey BeilageBez Sprache Bezeichnung 0,m Hauptsitz BankClearing 0,1 WandlungPostKontoNr Updated SICAbwicklung Ort NrExtern Name BankClearingNrZukunft BankClearingNr 0,5 1 AvisZusatzText Text Sprache 0,4 1 AvisVorschlag Text Sprache AvisSelektionDef Prioritaet PlzVon PlzBis GueltigBisDatum GueltigAbDatum 0,m 0,5 1 AvisFixText TaNr Text Sprache 0,m 1 0,1 1 0,m 0,m Auslieferung 1 Verschluesselung Typ SuspendiertVon SuspendiertBis StatusDatum Status Nr MutationsDatum MobilTelNr MediumZusatz Medium IOKanal FormatISO Format BIC EmailAdresse Dateiname BezeichnungFreitext BenachrichtigungsArt AuftAvisTyp Bezeichnung Fixiert AuftragsFehlerText 5 1 Text Sprache AuftragsFehler Code Bereich AuftragsFehlerKey AsrTeilnahmeParam TnKontoNr TeilnahmeNr SuspendiertBis Suspendiert StatusDatum Status RejectEmpfaenger PortefeuilleOID KanalRejectAvisTeiln KanalRejectAvisAusl IsKeyKunde EncodeRejectAvisTeiln EncodeRejectAvisAusl eMailRejectAvisTeiln Bezeichnung AuslieferungsNrTest AuslieferungsNr AdrSprache => Taxkonto 1 => LSKonto 1 0,1 1 => DLT1 1 1 AsrTeilnahme => Adressen 1 TnKontoNr SuspendiertVon SuspendiertBis Suspendiert StatusGrund StatusDatum Status RejectEmpfaenger MutationsDatum LifeCycleStatusDatum LifeCycleStatus KanalRejectAvisTeiln KanalRejectAvisAusl Fixiert EncodeRejectAvisTeiln EncodeRejectAvisAusl eMailRejectAvisTeiln BezeichnungGross BezeichnungFreitext Bezeichnung BeitrittsDatum AufhebungsGrund AufhebungsDatum 1,4 1 AsrBelegart Reihenfolge Belegart eRechnung Vorsorgekonto Unterhalt KOBE SQR Reka <- Konto <- Kunde PK Pricing FondsPalette ESR/ASR Depot Dauerauftrag Banken Auslieferung
  • 23. Finite State Automata • In-house solution (since 1977), known as Procol • Graphical representation of automata • Generate Ada Code • Includes snippets of Ada code • Used to model state of • Business objects (accounts, customers, orders, …) • User Interface 1/10/2015 ZVIS—A Financial System in Ada 33
  • 24. State Machines 1/10/2015 ZVIS—A Financial System in Ada 34
  • 25. PMG • The Paranor Marshalling Generator • ASIS Application • Generates compact binary representation of data type • Used for heterogeneous sytems (big vs. little indian) • Mainly variant records • Transportable over the network • Extended to generated XML (EAI) 1/10/2015 ZVIS—A Financial System in Ada 35
  • 26. Unification of the Modeling and DSL Environment Eclipse based, extensive use of EMF and Xtext 1/10/2015 ZVIS—A Financial System in Ada 36
  • 27. 1/10/2015 ZVIS—A Financial System in Ada 38 50% of code generated Focus on Innovation
  • 28. Why Ada with Generators • All Ada benefits are still valid for the consumers of the generated code • Especially safe type-checking with generated code • Smart recompilation • Notice the impact of generated code • Only recompiles what’s necessary • ASIS very valuable to generate from Ada code 1/10/2015 ZVIS—A Financial System in Ada 39
  • 29. Conclusion • Ada can be used in financial applications • Not just embedded systems • Allows for high availability, reliability, scalability, and performance • It can be economically profitable • Modeling helps reduce the costs of maintenance • Use code generation wherever possible 1/10/2015 ZVIS—A Financial System in Ada 40
  • 30. Thank You! Stéphane Barbey, CTO stephane.barbey@paranor.ch 1/10/2015 ZVIS—A Financial System in Ada 41 https://www.linkedin.com/in/barbey

Editor's Notes

  1. Back-ends provides related set of services Dedicated and limited functionality Usually 1 to 3 services per back-end Strict separation of read/only and update back-ends KUDA back-ends can be run on multiple nodes simultaneously. Processes provide containers in which back-ends execute Parallel processing of service requests and execution Back-ends can be distributed and replicated across processes Dynamically add processes and assign back-ends to processes KUDA is not a monolithic application Use of shared libraries Can be deployed independently (patches) Stop & restart the corresponding back-ends Versioned Only need to restart affected back-ends Reduce memory foot-print Each process does not have a copy of the code
  2. We bound in existing Xtext models In some cases we were able to able use our new models with the existing ones. Specifically our existing models were maintaining their own primitive definitions, now they reference THE primitives models. Also cases of items defined a STRINGS for pragmatic reasons now link to models. e.g. Constants Validation as business capture. 14. And during all this (the migration of the other models) we created some new ones. Developers now familiar with the process and the capabilities of Xtest modelling started to identify new candidate areas. Some of these are existing code components - … Some are new functionality. Noteability , many these new models were being used to produce productive code before the persistence layer migration was complete.
  3. Generated Use encapsulation (private types) Provide standard operations (value, image, …) Conversions for non-standard representations User-defined operations Exceptions Also generated Translate database error codes into exceptions
  4. Easy structured handling of user events Better performance to prevent unnecessary update operations Remove the need for boilerplate code
  5. A reference case: PostFinance developed their core payment plattform in the early 90‘s and it is reliably running ever since. In order to achieve such a stable, but still expandable system, PostFinance realized that a modernization would help. Paranor started a modernization project to modernize the complete development environment.
  6. Here are some more numbers .
  7. We use the ability of Ada to provide a high-level interface