SlideShare a Scribd company logo
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
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 3
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 4
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 5
1 Million
lines of
code
4 Millions
lines of
code
Technical Modernization
Innovation & Maintenance
1/10/2015 ZVIS—A Financial System in Ada 6
>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 7
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 8
Scalability and Performance
1/10/2015 ZVIS—A Financial System in Ada 9
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 10
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 11
1/10/2015 ZVIS—A Financial System in Ada 12
>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 13
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 14
1/10/2015 ZVIS—A Financial System in Ada 15
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 16
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 17
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 18
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 19
State Machines
1/10/2015 ZVIS—A Financial System in Ada 20
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 21
Unification of the Modeling and DSL
Environment
Eclipse based, extensive use of EMF and Xtext
1/10/2015 ZVIS—A Financial System in Ada 22
1/10/2015 ZVIS—A Financial System in Ada 23
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 24
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 25
Thank You!
Stéphane Barbey, CTO
stephane.barbey@paranor.ch
1/10/2015 ZVIS—A Financial System in Ada 26
https://www.linkedin.com/in/barbey

More Related Content

What's hot

Waseem_Siddiqui_Resume
Waseem_Siddiqui_ResumeWaseem_Siddiqui_Resume
Waseem_Siddiqui_Resume
mohd waseem
 
Introduction to Business Intelligence
Introduction to Business IntelligenceIntroduction to Business Intelligence
Introduction to Business Intelligence
Almog Ramrajkar
 
KEDAR_TERDALKAR
KEDAR_TERDALKARKEDAR_TERDALKAR
KEDAR_TERDALKAR
Kedar Terdalkar
 
Data-Centric Approach for Project Delivery
Data-Centric Approach for Project DeliveryData-Centric Approach for Project Delivery
Data-Centric Approach for Project Delivery
AVEVA Group plc
 
Converting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000DConverting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000D
dclsocialmedia
 
Anant_Shekdar_BI_Resume
Anant_Shekdar_BI_ResumeAnant_Shekdar_BI_Resume
Anant_Shekdar_BI_Resume
Anant Shekdar
 
How to get started with Agile BI
How to get started with Agile BIHow to get started with Agile BI
How to get started with Agile BI
Excella
 

What's hot (7)

Waseem_Siddiqui_Resume
Waseem_Siddiqui_ResumeWaseem_Siddiqui_Resume
Waseem_Siddiqui_Resume
 
Introduction to Business Intelligence
Introduction to Business IntelligenceIntroduction to Business Intelligence
Introduction to Business Intelligence
 
KEDAR_TERDALKAR
KEDAR_TERDALKARKEDAR_TERDALKAR
KEDAR_TERDALKAR
 
Data-Centric Approach for Project Delivery
Data-Centric Approach for Project DeliveryData-Centric Approach for Project Delivery
Data-Centric Approach for Project Delivery
 
Converting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000DConverting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000D
 
Anant_Shekdar_BI_Resume
Anant_Shekdar_BI_ResumeAnant_Shekdar_BI_Resume
Anant_Shekdar_BI_Resume
 
How to get started with Agile BI
How to get started with Agile BIHow to get started with Agile BI
How to get started with Agile BI
 

Similar to AdaCore Tech Days

OSGi and Financial Messaging - A successful use case - Luis Matos
OSGi and Financial Messaging - A successful use case - Luis MatosOSGi and Financial Messaging - A successful use case - Luis Matos
OSGi and Financial Messaging - A successful use case - Luis Matos
mfrancis
 
Accelerate and modernize your data pipelines
Accelerate and modernize your data pipelinesAccelerate and modernize your data pipelines
Accelerate and modernize your data pipelines
Paul Van Siclen
 
How to build streaming data applications - evaluating the top contenders
How to build streaming data applications - evaluating the top contendersHow to build streaming data applications - evaluating the top contenders
How to build streaming data applications - evaluating the top contenders
Akmal Chaudhri
 
How to Place Data at the Center of Digital Transformation in BFSI
How to Place Data at the Center of Digital Transformation in BFSIHow to Place Data at the Center of Digital Transformation in BFSI
How to Place Data at the Center of Digital Transformation in BFSI
Denodo
 
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
NoSQLmatters
 
Real-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDB
Real-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDBReal-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDB
Real-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDB
VoltDB
 
Case Study: Implementing a Data Mesh at NORD/LB
Case Study: Implementing a Data Mesh at NORD/LBCase Study: Implementing a Data Mesh at NORD/LB
Case Study: Implementing a Data Mesh at NORD/LB
HostedbyConfluent
 
Wholesale services over VxC Fabrics
Wholesale services over VxC FabricsWholesale services over VxC Fabrics
Wholesale services over VxC Fabrics
Skeeve Stevens
 
Stardust - Open Source BPMS for the Financial Industry
Stardust - Open Source BPMS for the Financial IndustryStardust - Open Source BPMS for the Financial Industry
Stardust - Open Source BPMS for the Financial Industry
Marc Gille
 
Fast Data – the New Big Data
Fast Data – the New Big DataFast Data – the New Big Data
Fast Data – the New Big Data
VoltDB
 
2009-01-14 Red Hat Destination z Field Call
2009-01-14 Red Hat Destination z Field Call2009-01-14 Red Hat Destination z Field Call
2009-01-14 Red Hat Destination z Field Call
Shawn Wells
 
EMEA Tech Summit Dublin - Winning with SolidFire
EMEA Tech Summit Dublin - Winning with SolidFire EMEA Tech Summit Dublin - Winning with SolidFire
EMEA Tech Summit Dublin - Winning with SolidFire
NetApp
 
Oracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management PlatformaOracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management Platforma
MarketingArrowECS_CZ
 
Analytics on system z final
Analytics on system z finalAnalytics on system z final
Analytics on system z final
Peter Schouboe
 
VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...
VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...
VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...
VoltDB
 
Logical Data Warehouse: How to Build a Virtualized Data Services Layer
Logical Data Warehouse: How to Build a Virtualized Data Services LayerLogical Data Warehouse: How to Build a Virtualized Data Services Layer
Logical Data Warehouse: How to Build a Virtualized Data Services Layer
DataWorks Summit
 
Jak konsolidovat Vaše databáze s využitím Cloud služeb?
Jak konsolidovat Vaše databáze s využitím Cloud služeb?Jak konsolidovat Vaše databáze s využitím Cloud služeb?
Jak konsolidovat Vaše databáze s využitím Cloud služeb?
MarketingArrowECS_CZ
 
Scaling db infra_pay_pal
Scaling db infra_pay_palScaling db infra_pay_pal
Scaling db infra_pay_pal
pramod garre
 
Apache geode
Apache geodeApache geode
Apache geode
Yogesh BG
 
How Financial Institutions Are Leveraging Data Virtualization to Overcome the...
How Financial Institutions Are Leveraging Data Virtualization to Overcome the...How Financial Institutions Are Leveraging Data Virtualization to Overcome the...
How Financial Institutions Are Leveraging Data Virtualization to Overcome the...
Denodo
 

Similar to AdaCore Tech Days (20)

OSGi and Financial Messaging - A successful use case - Luis Matos
OSGi and Financial Messaging - A successful use case - Luis MatosOSGi and Financial Messaging - A successful use case - Luis Matos
OSGi and Financial Messaging - A successful use case - Luis Matos
 
Accelerate and modernize your data pipelines
Accelerate and modernize your data pipelinesAccelerate and modernize your data pipelines
Accelerate and modernize your data pipelines
 
How to build streaming data applications - evaluating the top contenders
How to build streaming data applications - evaluating the top contendersHow to build streaming data applications - evaluating the top contenders
How to build streaming data applications - evaluating the top contenders
 
How to Place Data at the Center of Digital Transformation in BFSI
How to Place Data at the Center of Digital Transformation in BFSIHow to Place Data at the Center of Digital Transformation in BFSI
How to Place Data at the Center of Digital Transformation in BFSI
 
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
 
Real-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDB
Real-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDBReal-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDB
Real-time Big Data Analytics in the IBM SoftLayer Cloud with VoltDB
 
Case Study: Implementing a Data Mesh at NORD/LB
Case Study: Implementing a Data Mesh at NORD/LBCase Study: Implementing a Data Mesh at NORD/LB
Case Study: Implementing a Data Mesh at NORD/LB
 
Wholesale services over VxC Fabrics
Wholesale services over VxC FabricsWholesale services over VxC Fabrics
Wholesale services over VxC Fabrics
 
Stardust - Open Source BPMS for the Financial Industry
Stardust - Open Source BPMS for the Financial IndustryStardust - Open Source BPMS for the Financial Industry
Stardust - Open Source BPMS for the Financial Industry
 
Fast Data – the New Big Data
Fast Data – the New Big DataFast Data – the New Big Data
Fast Data – the New Big Data
 
2009-01-14 Red Hat Destination z Field Call
2009-01-14 Red Hat Destination z Field Call2009-01-14 Red Hat Destination z Field Call
2009-01-14 Red Hat Destination z Field Call
 
EMEA Tech Summit Dublin - Winning with SolidFire
EMEA Tech Summit Dublin - Winning with SolidFire EMEA Tech Summit Dublin - Winning with SolidFire
EMEA Tech Summit Dublin - Winning with SolidFire
 
Oracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management PlatformaOracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management Platforma
 
Analytics on system z final
Analytics on system z finalAnalytics on system z final
Analytics on system z final
 
VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...
VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...
VoltDB and Flytxt Present: Building a Single Technology Platform for Real-Tim...
 
Logical Data Warehouse: How to Build a Virtualized Data Services Layer
Logical Data Warehouse: How to Build a Virtualized Data Services LayerLogical Data Warehouse: How to Build a Virtualized Data Services Layer
Logical Data Warehouse: How to Build a Virtualized Data Services Layer
 
Jak konsolidovat Vaše databáze s využitím Cloud služeb?
Jak konsolidovat Vaše databáze s využitím Cloud služeb?Jak konsolidovat Vaše databáze s využitím Cloud služeb?
Jak konsolidovat Vaše databáze s využitím Cloud služeb?
 
Scaling db infra_pay_pal
Scaling db infra_pay_palScaling db infra_pay_pal
Scaling db infra_pay_pal
 
Apache geode
Apache geodeApache geode
Apache geode
 
How Financial Institutions Are Leveraging Data Virtualization to Overcome the...
How Financial Institutions Are Leveraging Data Virtualization to Overcome the...How Financial Institutions Are Leveraging Data Virtualization to Overcome the...
How Financial Institutions Are Leveraging Data Virtualization to Overcome the...
 

Recently uploaded

Optimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptxOptimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptx
WebConnect Pvt Ltd
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Luigi Fugaro
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 

Recently uploaded (20)

Optimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptxOptimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptx
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 

AdaCore Tech Days

  • 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. 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 3
  • 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 4
  • 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 5 1 Million lines of code 4 Millions lines of code Technical Modernization Innovation & Maintenance
  • 6. 1/10/2015 ZVIS—A Financial System in Ada 6 >4 millions lines of Ada And not just Ada
  • 7. 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 7
  • 8. 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 8
  • 9. Scalability and Performance 1/10/2015 ZVIS—A Financial System in Ada 9 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
  • 10. Database Replication 1/10/2015 ZVIS—A Financial System in Ada 10 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
  • 11. 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 11
  • 12. 1/10/2015 ZVIS—A Financial System in Ada 12 >4 millions lines of Ada Focus on Maintenance
  • 13. 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 13
  • 14. 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 14
  • 15. 1/10/2015 ZVIS—A Financial System in Ada 15
  • 16. 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 16
  • 17. 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 17
  • 18. 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 18
  • 19. 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 19
  • 20. State Machines 1/10/2015 ZVIS—A Financial System in Ada 20
  • 21. 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 21
  • 22. Unification of the Modeling and DSL Environment Eclipse based, extensive use of EMF and Xtext 1/10/2015 ZVIS—A Financial System in Ada 22
  • 23. 1/10/2015 ZVIS—A Financial System in Ada 23 50% of code generated Focus on Innovation
  • 24. 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 24
  • 25. 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 25
  • 26. Thank You! Stéphane Barbey, CTO stephane.barbey@paranor.ch 1/10/2015 ZVIS—A Financial System in Ada 26 https://www.linkedin.com/in/barbey

Editor's Notes

  1. KUDA is not a monolithic application 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 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. Easy structured handling of user events Better performance to prevent unnecessary update operations Remove the need for boilerplate code
  3. 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.
  4. We use the ability of Ada to provide a high-level interface