language-‐oriented business applica(ons introducing
TRANSCRIPT
L O B A Language-‐Oriented Business Applica4ons
Markus Völter
[email protected] www.voelter.de @markusvoelter
Introducing
1 Business Agility 2 Language Workbenches 3 JetBrains MPS 4 LOBA Examples + Demo 5 The Big Picture 6 Summary
1 Business Agility
Ideal
Reality
Goal!?
Expressivity for Core Domain Knowledge
User-‐Friendly Nota4on
Tes4ng
Meaningful Analyses
Synthesis of SoZware
And us developers?
And us developers?
And us developers?
And us developers?
Any number of technologies,
frameworks and Tools.
Word, Excel and ugly, unproduc4ve web apps.
Things to Remember
Let Business/Domain people contribute directly!
Give them expressive, produc4ve tools to do so!
2 Language
Workbenches
DSL
DSL interpreter
generator
DSL interpreter generator
An old idea from the 1970s.
BUT...
Language Workbench
(Mar4n Fowler)
Freely define integrate
them
languages and
Language Workbench
(Mar4n Fowler)
Freely define integrate
them
languages and
Language Workbench
(Mar4n Fowler)
+ more detailed criteria I will omit here
powerful edi4ng tes4ng
refactoring debugging
language defini4on IDE defini4on
implies
+ teamwork
Language Workbench
(Mar4n Fowler)
LWBs make Languages Easier
Several different LWBs exist.
Blur the dis4nc4on between programming and modeling.
h4p://languageworkbenches.net
3 JetBrains MPS
Open Source Apache 2.0 hep://jetbrains.com/mps
[Language Workbench]
+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...
Projec4onal Edi4ng
Parsing Projec4onal Edi4ng
[Projec4onal Edi4ng]
Regular Code/Text Mathema4cal
Tables Graphical
Syntac4c Flexibility [Projec4onal Edi4ng]
Regular Code/Text Mathema4cal
Tables Graphical
Syntac4c Flexibility [Projec4onal Edi4ng]
L2 L1
Separate Files In One File
Type System Transforma4on Constraints
Type System Transforma4on Constraints Syntax IDE
Language Composi4on [Projec4onal Edi4ng]
50+ extensions to C 10+ extensions to requirements lang.
Projec4onal Edi4ng provides syntac4c flexibility and lang. extensibility.
Usability Issues are mostly solved.
MPS is great, but alterna4ves exist.
4 LOBA
Examples
[Enterprise Applica4on] Modellwerkstae
Retail: Invoice Checking, Cash Point Con-‐ trolling, Purchasing Contracts, Inventory Mgt
End Users: 40 users, several sites
Language Users: 6
Language Developers: 1.5
h4p://www.modellwerksta4.org/
Size of System/Data: ??
[Enterprise Applica4on] Modellwerkstae
[Enterprise Applica4on] Modellwerkstae
[Enterprise Applica4on] Modellwerkstae
[Enterprise Applica4on] Modellwerkstae
[Enterprise Applica4on] Modellwerkstae
[Enterprise Applica4on] Bundesagentur für Arbeit
Government Administra4on: IT system for the German employment agency
End Users: 120.000
Language Users: 60 in 6 Scrum Teams
Language Developers: > 10
Size of System/Data: 5.000 model (text) files with 400 UI masks (when done), 300 enTTes, 1.100 operaTons. Database 8TB. 70 App Servers, 15 Linux Boxes.
[Enterprise Applica4on] Bundesagentur für Arbeit
[Enterprise Applica4on] Bundesagentur für Arbeit
[Enterprise Applica4on] Bundesagentur für Arbeit
[Enterprise Applica4on] Bundesagentur für Arbeit
Qualitative Change
[Business Applica4on] Insurance Configura4on Tool
Insurance Contract Defini4on: Insurance Math, data types, business/payment rules
End Users: Thousands
Language Users: Dozens
Language Developers: 3
Size of System/Data: ??
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
<no variables> <no parent>
<no libraries>
<no business objects>
<no parent>
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
Insurance Contract Defini4on: Insurance math, pension payment rules
End Users: Thousands
Language Users: Dozens
Language Developers: 3
Size of System/Data: ??
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
[Tax/Benefits Applica4on] Dutch Tax Agency (Evalua4on)
Benefits Calcula4on:
End Users: Hundreds
Language Users: 15
Language Developers: 2
Size of System/Data: Process data for 6 million ciTzens, 250 data types, 160 business concepts, 400 message types, 100 business funcTons, 10 services
[Tax/Benefits Applica4on] Dutch Tax Agency (Evalua4on)
[Business Applica4on] Telco Demo App
Telco Price Calcula4ons: Data structures, math rules, business rules, contract definiTons
End Users: -‐-‐
Language Users: -‐-‐
Language Developers: 1
Size of System/Data: -‐-‐
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
[Business Applica4on] Telco Demo App
DEMO
5 The Big Picture
[LOBA]
Lang 1
System: LWB
Lang 2 Lang 3
Lang 4 Lang 5 Lang N ...
[LOBA]
Core Business
Logic }Business Rules (Financial) Calculations
Data Structures Mappings or Queries
Validations Scientific Processes
Contracts
Processes UI
Most business people are able to and want to express themselves precisely!
Let‘s give them the tools to do it!
Languages/ IDEs
Forms/ Applica4ons
L O B A
Applica4ons are ways to work with Data.
Tools are ways to work with Data. { author
read analyze process
Data Formats are
almost Languages.
Structure, Constraints, SemanTcs
+ Syntax + IDE Data Format
Language
Language Workbenches
[almost]
Language Engineering }author analyze
compose execute
Language Workbenches enable us (developers) to build really
expressive tools for business people to work with data effec4vely.
Structure Nota4on Guidance Layout Views IDE/Tool
+ Mixed
+ Predefined
* Clean
-‐ Text -‐
Custom 1
Powerful
Structure Nota4on Guidance Layout Views IDE/Tool
Business oriented languages are very different from what we have
learned about languages for developers. LWBs let you build
such languages.
Let‘s combines the best of Languages and Form-‐based Tools.
L O B A
„Language“ inter-‐ preted liberally – new styles for languages.
A new Paradigm for Applica4ons
L O B A
„Language“ inter-‐ preted liberally – new styles for languages.
A new Paradigm for Applica4ons
Form Lang
Form Language
Expressions „Code“
Code CompleTon Error HighlighTng Version Control Refactoring Debugging
Helper Bu4ons Tables
Rigid Structures Tree Views
VisualizaTons Live InterpretaTon Math NotaTon
Graphical Prose + Code
6 Summary
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain!
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos.
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos. Integrated DSLs for tes4ng.
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos. An integrated DSL for tes4ng. Types, Consistency, Checking
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos. An integrated DSL for tes4ng. Types, Consistency, Checking Code Genera4on.
Fundamentally s4ll manual, no AI.
But much beeer tooling.
Become Language Engineering Experts.
Focus on architecture & technology, engineering
One more thing
The Web
LWBs on the Web Xtext and MPS teams are working on it
It will be months to years un4l these are finished/robust.
Other web-‐LWBs (prototypes) exist: hep://languageworkbenches.net
The Web
Two more more things
Transac4onal data stays in databases.
We don‘t want to replace the math wiz‘ tools.
Two more more things
If you have to build a business app,
consider using an LWB as the founda4on,
and recas4ng the „applica4on“ as a set of languages.
source
[Read & Learn]
Thank you!!
[email protected] www.voelter.de @markusvoelter