104
LOBA LanguageOriented Business Applica4ons Markus Völter [email protected] www.voelter.de @markusvoelter Introducing

Language-‐Oriented Business Applica(ons Introducing

Embed Size (px)

Citation preview

Page 1: Language-‐Oriented Business Applica(ons Introducing

L    O    B    A        Language-­‐Oriented  Business  Applica4ons  

Markus  Völter  

[email protected]  www.voelter.de  @markusvoelter  

Introducing  

Page 2: Language-‐Oriented Business Applica(ons Introducing

1        Business  Agility  2        Language  Workbenches  3        JetBrains  MPS  4  LOBA  Examples  +  Demo  5  The  Big  Picture  6        Summary  

Page 3: Language-‐Oriented Business Applica(ons Introducing

1  Business  Agility  

Page 4: Language-‐Oriented Business Applica(ons Introducing

Ideal  

Page 5: Language-‐Oriented Business Applica(ons Introducing

Reality  

Page 6: Language-‐Oriented Business Applica(ons Introducing

Goal!?  

Page 7: Language-‐Oriented Business Applica(ons Introducing

Expressivity  for  Core  Domain  Knowledge  

 User-­‐Friendly  Nota4on  

 Tes4ng  

 Meaningful  Analyses  

 Synthesis  of  SoZware  

Page 8: Language-‐Oriented Business Applica(ons Introducing

And  us  developers?  

Page 9: Language-‐Oriented Business Applica(ons Introducing

And  us  developers?  

Page 10: Language-‐Oriented Business Applica(ons Introducing

And  us  developers?  

Page 11: Language-‐Oriented Business Applica(ons Introducing

And  us  developers?  

Page 12: Language-‐Oriented Business Applica(ons Introducing

Any  number  of  technologies,  

frameworks  and  Tools.  

Page 13: Language-‐Oriented Business Applica(ons Introducing

Word,  Excel  and  ugly,  unproduc4ve  web  apps.  

Page 14: Language-‐Oriented Business Applica(ons Introducing

Things  to  Remember  

Page 15: Language-‐Oriented Business Applica(ons Introducing

Let  Business/Domain  people  contribute  directly!  

Give  them  expressive,  produc4ve  tools  to  do  so!  

Page 16: Language-‐Oriented Business Applica(ons Introducing

2  Language  

Workbenches  

Page 17: Language-‐Oriented Business Applica(ons Introducing

DSL  

DSL   interpreter  

generator  

Page 18: Language-‐Oriented Business Applica(ons Introducing

DSL   interpreter  generator  

An  old  idea    from  the  1970s.  

BUT...  

Page 19: Language-‐Oriented Business Applica(ons Introducing

Language  Workbench  

(Mar4n  Fowler)  

Page 20: Language-‐Oriented Business Applica(ons Introducing

Freely  define  integrate  

them  

languages  and  

Language  Workbench  

(Mar4n  Fowler)  

Page 21: Language-‐Oriented Business Applica(ons Introducing

Freely  define  integrate  

them  

languages  and  

Language  Workbench  

(Mar4n  Fowler)  

+  more  detailed  criteria  I  will    omit  here  

Page 22: Language-‐Oriented Business Applica(ons Introducing

powerful  edi4ng  tes4ng  

refactoring  debugging  

language  defini4on  IDE  defini4on  

implies  

+  teamwork  

Language  Workbench  

(Mar4n  Fowler)  

Page 23: Language-‐Oriented Business Applica(ons Introducing

LWBs  make  Languages  Easier  

Several  different  LWBs  exist.  

Blur  the  dis4nc4on  between  programming  and  modeling.  

h4p://languageworkbenches.net  

Page 24: Language-‐Oriented Business Applica(ons Introducing

3  JetBrains    MPS  

Page 25: Language-‐Oriented Business Applica(ons Introducing

Open  Source  Apache  2.0  hep://jetbrains.com/mps  

Page 26: Language-‐Oriented Business Applica(ons Introducing

[Language  Workbench]  

+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...

Page 27: Language-‐Oriented Business Applica(ons Introducing

Projec4onal  Edi4ng  

Page 28: Language-‐Oriented Business Applica(ons Introducing

Parsing   Projec4onal  Edi4ng  

[Projec4onal  Edi4ng]  

Page 29: Language-‐Oriented Business Applica(ons Introducing

Regular  Code/Text   Mathema4cal  

Tables   Graphical  

Syntac4c  Flexibility  [Projec4onal  Edi4ng]  

Page 30: Language-‐Oriented Business Applica(ons Introducing

Regular  Code/Text   Mathema4cal  

Tables   Graphical  

Syntac4c  Flexibility  [Projec4onal  Edi4ng]  

Page 31: Language-‐Oriented Business Applica(ons Introducing

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.  

Page 32: Language-‐Oriented Business Applica(ons Introducing

Projec4onal  Edi4ng  provides  syntac4c  flexibility  and  lang.  extensibility.  

Usability  Issues  are  mostly  solved.  

MPS  is  great,  but  alterna4ves  exist.  

Page 33: Language-‐Oriented Business Applica(ons Introducing

4  LOBA  

Examples  

Page 34: Language-‐Oriented Business Applica(ons Introducing

[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:  ??  

Page 35: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Modellwerkstae  

Page 36: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Modellwerkstae  

Page 37: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Modellwerkstae  

Page 38: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Modellwerkstae  

Page 39: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Modellwerkstae  

Page 40: Language-‐Oriented Business Applica(ons Introducing

[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.  

Page 41: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Bundesagentur  für  Arbeit  

Page 42: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Bundesagentur  für  Arbeit  

Page 43: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Bundesagentur  für  Arbeit  

Page 44: Language-‐Oriented Business Applica(ons Introducing

[Enterprise  Applica4on]  Bundesagentur  für  Arbeit  

Page 45: Language-‐Oriented Business Applica(ons Introducing

Qualitative Change

Page 46: Language-‐Oriented Business Applica(ons Introducing

[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:  ??  

Page 47: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 48: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 49: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 50: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 51: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 52: Language-‐Oriented Business Applica(ons Introducing

<no  variables>   <no  parent>  

<no  libraries>  

<no  business  objects>  

<no  parent>  

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 53: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 54: Language-‐Oriented Business Applica(ons Introducing

[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:  ??  

Page 55: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 56: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Insurance  Configura4on  Tool  

Page 57: Language-‐Oriented Business Applica(ons Introducing

[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    

Page 58: Language-‐Oriented Business Applica(ons Introducing

[Tax/Benefits  Applica4on]  Dutch  Tax  Agency  (Evalua4on)  

Page 59: Language-‐Oriented Business Applica(ons Introducing

[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:  -­‐-­‐  

Page 60: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 61: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 62: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 63: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 64: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 65: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 66: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 67: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 68: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 69: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 70: Language-‐Oriented Business Applica(ons Introducing

[Business  Applica4on]  Telco  Demo  App  

Page 71: Language-‐Oriented Business Applica(ons Introducing

DEMO  

Page 72: Language-‐Oriented Business Applica(ons Introducing

5  The  Big  Picture  

Page 73: Language-‐Oriented Business Applica(ons Introducing

[LOBA]  

Lang 1

System: LWB

Lang 2 Lang 3

Lang 4 Lang 5 Lang N ...  

Page 74: Language-‐Oriented Business Applica(ons Introducing

[LOBA]  

Core Business

Logic }Business Rules (Financial) Calculations

Data Structures Mappings or Queries

Validations Scientific Processes

Contracts

Processes UI

Page 75: Language-‐Oriented Business Applica(ons Introducing

Most  business  people  are  able  to  and  want  to  express  themselves  precisely!  

 Let‘s  give  them  the  tools  to  do  it!  

Page 76: Language-‐Oriented Business Applica(ons Introducing

Languages/  IDEs  

Forms/  Applica4ons  

L  O  B  A  

Page 77: Language-‐Oriented Business Applica(ons Introducing

Applica4ons    are  ways  to    work  with  Data.  

Page 78: Language-‐Oriented Business Applica(ons Introducing

Tools  are  ways  to    work  with  Data.  { author  

read  analyze  process  

Page 79: Language-‐Oriented Business Applica(ons Introducing

Data    Formats  are  

almost  Languages.  

Page 80: Language-‐Oriented Business Applica(ons Introducing

Structure,  Constraints,  SemanTcs  

+  Syntax  +  IDE  Data  Format  

Language  

Language  Workbenches  

[almost]  

Language  Engineering  }author  analyze  

compose  execute  

Page 81: Language-‐Oriented Business Applica(ons Introducing

Language  Workbenches  enable  us  (developers)  to  build  really  

expressive  tools  for  business  people  to  work  with  data  effec4vely.  

Page 82: Language-‐Oriented Business Applica(ons Introducing

Structure  Nota4on  Guidance  Layout  Views  IDE/Tool    

+  Mixed  

+  Predefined  

*  Clean    

-­‐  Text  -­‐  

Custom  1  

Powerful  

Page 83: Language-‐Oriented Business Applica(ons Introducing

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.    

Page 84: Language-‐Oriented Business Applica(ons Introducing

L  O  B  A  

„Language“  inter-­‐  preted  liberally  –  new  styles  for  languages.  

A  new    Paradigm  for  Applica4ons  

Page 85: Language-‐Oriented Business Applica(ons Introducing

L  O  B  A  

„Language“  inter-­‐  preted  liberally  –  new  styles  for  languages.  

A  new    Paradigm  for  Applica4ons  

Form  Lang  

Page 86: Language-‐Oriented Business Applica(ons Introducing

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  

 

Page 87: Language-‐Oriented Business Applica(ons Introducing

6  Summary  

Page 88: Language-‐Oriented Business Applica(ons Introducing

Expressivity  for  Core  Domain  Knowledge    User-­‐Friendly  Nota4on    Tes4ng    Meaningful  Analyses    Synthesis  of  SoZware  

Page 89: Language-‐Oriented Business Applica(ons Introducing

Expressivity  for  Core  Domain  Knowledge    User-­‐Friendly  Nota4on    Tes4ng    Meaningful  Analyses    Synthesis  of  SoZware  

Build  Language  for  Domain!    

Page 90: Language-‐Oriented Business Applica(ons Introducing

Expressivity  for  Core  Domain  Knowledge    User-­‐Friendly  Nota4on    Tes4ng    Meaningful  Analyses    Synthesis  of  SoZware  

Build  Language  for  Domain!    You‘ve  seen  the  demos.    

Page 91: Language-‐Oriented Business Applica(ons Introducing

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.    

Page 92: Language-‐Oriented Business Applica(ons Introducing

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    

Page 93: Language-‐Oriented Business Applica(ons Introducing

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.  

Page 94: Language-‐Oriented Business Applica(ons Introducing

Fundamentally    s4ll  manual,  no  AI.  

But  much  beeer  tooling.  

Page 95: Language-‐Oriented Business Applica(ons Introducing

Become  Language  Engineering  Experts.  

Page 96: Language-‐Oriented Business Applica(ons Introducing

Focus  on  architecture  &  technology,  engineering  

Page 97: Language-‐Oriented Business Applica(ons Introducing

One  more  thing  

The    Web  

Page 98: Language-‐Oriented Business Applica(ons Introducing

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  

Page 99: Language-‐Oriented Business Applica(ons Introducing

Two  more  more  things  

Transac4onal  data  stays  in  databases.  

Page 100: Language-‐Oriented Business Applica(ons Introducing

We  don‘t  want  to  replace  the  math  wiz‘  tools.  

Two  more  more  things  

Page 101: Language-‐Oriented Business Applica(ons Introducing

If  you  have  to  build  a  business  app,  

consider  using  an  LWB  as  the  founda4on,    

and  recas4ng  the  „applica4on“    as  a  set  of  languages.  

 

Page 102: Language-‐Oriented Business Applica(ons Introducing

source  

Page 103: Language-‐Oriented Business Applica(ons Introducing

[Read  &  Learn]  

Page 104: Language-‐Oriented Business Applica(ons Introducing

Thank you!!

[email protected]  www.voelter.de  @markusvoelter