introducing language-oriented business applications - markus voelter

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

Upload: jaxlondon2014

Post on 16-Jul-2015

323 views

Category:

Presentations & Public Speaking


0 download

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