Wilbert Alberts
24 april 2018, Eindhoven
ASML’s MDE going Sirius
Public
SW architect ASML
2016-11-15
Slide 2
Public
Content
About ASML
MDE in ASML
DCA architecture pattern
Using Sirius
20 January 2016
Slide 3
Public
It’s hard to imagine a world without chips
Moore’s Law means doing more with less
30 April 2018
Public
Slide 4
Q4 2017
Slide 5
Public
ASML makes the machines for making those chips
• Lithography is the critical tool
for producing chips
• All of the world’s top chip
makers are our customers
• 2017 sales: €9 billion
• More than 19,000 employees
(FTE) worldwide
MDSE ecosystem: Multi Disciplinary System Engineering
30 April 2018
Public
Slide 6
Specification
• In terms of problem domain
• Expressive for concise
specification of large multi-
disciplinary systems
• ‘Look-and-feel’ primarily
determined by domain
experts
Crucial for adoption Analysis
• Questions to be answered
primarily determine the suitable
(COTS) analysis tools
• Extra-functionals discriminate
further between suitable tools,
e.g. performance,
interoperability of tools
Synthesis
• Property preserving
• Automated
2016-11-15
Slide 7
Public
ASML and MDE
ASOME
Structure specification and refinement
Slide 8
Public
DCA introduction
A software component typically needs to:
• Decompose incoming requests into calculations and
requests that are served by others
• Ensure that the calculations and external requests
are done in the correct order
• Ensure that the calculations are external requests
are given the right data
• Perform the calculations
Data
Math
Ctrl
Communication
Communication
2016-11-15
Slide 9
Public
DCA design in evolution
Data
Math
Ctrl
Communication
Communication
Math
Ctrl
Communication
Communication
Extracting the repositories
allows replacing transport of
data by exchanging
reference to data.
Minimizes copying of data
through layers.
Slide 10
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Protocol is
checked
New request arrives
Data is
checked
Data is
stored
Slide 11
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Protocol is
checked
New request arrives
Until algorithm or foreign
action is to be invoked
Request is
decomposed
And ordered And delegated
Data is
needed
Data is
prepared
Data is
read
Slide 12
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Protocol is
checked
New request arrives
Until algorithm or foreign
action is to be invoked
Request is
decomposed
And ordered And delegated
Data is
needed
Foreign action
is invoked
Slide 13
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Data is
checked
Data is
stored
Protocol is
checked
Results and/or
events arrive
Slide 14
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Retrieve data
and notify
Take further
action or notify
Further
action
Control is
notified
Protocol is
checked
Results and/or
events arrive
Slide 15
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Retrieve data
and notify
Take further
action or notify
Further
action
Control is
notified
Protocol is
checked
Data is
prepared
Data is
read
Results and/or
events arrive
Slide 16
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Retrieve data
and notify
Send notification
Take further
action or notify
Further
action
Control is
notified
Protocol is
checked
Results and/or
events arrive
2016-11-15
Slide 17
Public
DCA, separation of Data Control and Algorithms
How it started:
• Started with modeling control; no data
• Then spotted opportunity to deal with data
• Build first prototype on Papyrus and Acceleo to demonstrate feasibility of
generating working code from model
• Users started to think UML’ish, to draw UML’ish, and to expect specific semantics
• Semantics ambiguous and unclear
• Even then, insufficient resources to implement all variants; less is more
2016-11-15
Slide 18
Public
DCA, separation of Data Control and Algorithms
How it progressed:
• SW architects decided to limit amount of concepts
• Build Sirius based prototype within a week
• Only provide tools and representations for supported concepts
• Subsequent iterations within days up to weeks
2016-11-15
Slide 19
Public
DCA Data editor
Entity
ValueObject
Persisted together with
(handwritten and generated)
source code.
Therefore textual storage
format (realized using Xtext).
Closely following
Domain Driven Design
(Evans)
Actually, the DSL
DSL editor was
one of my first
Sirius experiences
2016-11-15
Slide 20
Public
DCA data code generator
ASOME data models are generated into C++ using a generator model
Model to Text
using Acceleo
Generator model
editor by XText
Generator model
specifies details only
relevant for code
generator
2016-11-15
Slide 21
Public
ASOME – ASML Software Modeling Environment
Goal:
• Environment that exploits DSL’s to describe each aspect in its most optimal
form while supporting integration of aspect specific models
Solution:
• A family of languages, supported by editors, analyzers and generators, to allow
specification of DCA models
2016-11-15
Slide 22
Public
Where are we now
The data editor
2016-11-15
Slide 23
Public
Where are we now
The dds editor
2016-11-15
Slide 24
Public
Where are we now
The data adapter
2016-11-15
Slide 25
Public
Where are we now
The control editor
2016-11-15
Slide 26
Public
Where are we now
The armor generator
2016-11-15
Slide 27
Public
Where are we now
The composite systems editor
2016-11-15
Slide 28
Public
ASOME – ASML Software Modeling Environment
Likely to become a huge undertaking
Requires a roadmap
Obviously realized with a DSL and a Sirius based Roadmap editor
Another ‘How to learn Sirius’ project
2016-11-15
Slide 29
Public
ASOME empowered by Sirius
Sirius supports ASOME’s development by
• Being easy to learn
• Allowing fast iterations, incremental delivery
• Sufficiently expressive/powerful
• Providing quick support for all kinds of questions in the fora
Is there really no disadvantage or room for improvement?
2016-11-15
Slide 30
Public
ASOME empowered by Sirius
Improvement ideas
• Support ‘reuse’ within tools by a procedure call and definition like mechanism
• Also provide textual syntax for vsp definitions
All have more or less the same behavior,
currently realized by java service, would
have preferred a ‘callable’ AQL specification
2016-11-15
Slide 31
Public
ASOME empowered by Sirius
Improvement ideas
• Support ‘reuse’ within tools by a procedure call and definition like mechanism
• Also provide textual syntax for vsp definitions
• Optimize integration with textual editing frameworks, not everything is a picture
(but a lot is)
Location of editor not always
‘usable’. Open in separate edit
window might also be nice.
2016-11-15
Slide 32
Public
ASML empowered by Sirius
Improvement areas ok, but are we happy?
Yes we are!
We are looking forward to integrate xtext editing capabilities in the IDE
where text input is preferred
We hope to optimize the integration between the textual parts and the
graphical parts in our environment
2016-11-15
Slide 33
Public
[Sirius Day Eindhoven 2018]  ASML's MDE Going Sirius

[Sirius Day Eindhoven 2018] ASML's MDE Going Sirius

  • 1.
    Wilbert Alberts 24 april2018, Eindhoven ASML’s MDE going Sirius Public SW architect ASML
  • 2.
    2016-11-15 Slide 2 Public Content About ASML MDEin ASML DCA architecture pattern Using Sirius
  • 3.
    20 January 2016 Slide3 Public It’s hard to imagine a world without chips
  • 4.
    Moore’s Law meansdoing more with less 30 April 2018 Public Slide 4
  • 5.
    Q4 2017 Slide 5 Public ASMLmakes the machines for making those chips • Lithography is the critical tool for producing chips • All of the world’s top chip makers are our customers • 2017 sales: €9 billion • More than 19,000 employees (FTE) worldwide
  • 6.
    MDSE ecosystem: MultiDisciplinary System Engineering 30 April 2018 Public Slide 6 Specification • In terms of problem domain • Expressive for concise specification of large multi- disciplinary systems • ‘Look-and-feel’ primarily determined by domain experts Crucial for adoption Analysis • Questions to be answered primarily determine the suitable (COTS) analysis tools • Extra-functionals discriminate further between suitable tools, e.g. performance, interoperability of tools Synthesis • Property preserving • Automated
  • 7.
    2016-11-15 Slide 7 Public ASML andMDE ASOME Structure specification and refinement
  • 8.
    Slide 8 Public DCA introduction Asoftware component typically needs to: • Decompose incoming requests into calculations and requests that are served by others • Ensure that the calculations and external requests are done in the correct order • Ensure that the calculations are external requests are given the right data • Perform the calculations Data Math Ctrl Communication Communication
  • 9.
    2016-11-15 Slide 9 Public DCA designin evolution Data Math Ctrl Communication Communication Math Ctrl Communication Communication Extracting the repositories allows replacing transport of data by exchanging reference to data. Minimizes copying of data through layers.
  • 10.
    Slide 10 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Protocol is checked New request arrives Data is checked Data is stored
  • 11.
    Slide 11 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Protocol is checked New request arrives Until algorithm or foreign action is to be invoked Request is decomposed And ordered And delegated Data is needed Data is prepared Data is read
  • 12.
    Slide 12 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Protocol is checked New request arrives Until algorithm or foreign action is to be invoked Request is decomposed And ordered And delegated Data is needed Foreign action is invoked
  • 13.
    Slide 13 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Data is checked Data is stored Protocol is checked Results and/or events arrive
  • 14.
    Slide 14 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Retrieve data and notify Take further action or notify Further action Control is notified Protocol is checked Results and/or events arrive
  • 15.
    Slide 15 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Retrieve data and notify Take further action or notify Further action Control is notified Protocol is checked Data is prepared Data is read Results and/or events arrive
  • 16.
    Slide 16 Confidential DCA: Data,Control & Algorithms Architectural Pattern Lot Wafer Image Domain logic services Control Algorithms Data responsive consume time & resources transactional stateful & reactive stateless or stateful integrity & persistence CD CRUD E Actions Domain data services Armored data adapter services Armored data adapter services Data adapter services Retrieve data and notify Send notification Take further action or notify Further action Control is notified Protocol is checked Results and/or events arrive
  • 17.
    2016-11-15 Slide 17 Public DCA, separationof Data Control and Algorithms How it started: • Started with modeling control; no data • Then spotted opportunity to deal with data • Build first prototype on Papyrus and Acceleo to demonstrate feasibility of generating working code from model • Users started to think UML’ish, to draw UML’ish, and to expect specific semantics • Semantics ambiguous and unclear • Even then, insufficient resources to implement all variants; less is more
  • 18.
    2016-11-15 Slide 18 Public DCA, separationof Data Control and Algorithms How it progressed: • SW architects decided to limit amount of concepts • Build Sirius based prototype within a week • Only provide tools and representations for supported concepts • Subsequent iterations within days up to weeks
  • 19.
    2016-11-15 Slide 19 Public DCA Dataeditor Entity ValueObject Persisted together with (handwritten and generated) source code. Therefore textual storage format (realized using Xtext). Closely following Domain Driven Design (Evans)
  • 20.
    Actually, the DSL DSLeditor was one of my first Sirius experiences 2016-11-15 Slide 20 Public DCA data code generator ASOME data models are generated into C++ using a generator model Model to Text using Acceleo Generator model editor by XText Generator model specifies details only relevant for code generator
  • 21.
    2016-11-15 Slide 21 Public ASOME –ASML Software Modeling Environment Goal: • Environment that exploits DSL’s to describe each aspect in its most optimal form while supporting integration of aspect specific models Solution: • A family of languages, supported by editors, analyzers and generators, to allow specification of DCA models
  • 22.
  • 23.
  • 24.
    2016-11-15 Slide 24 Public Where arewe now The data adapter
  • 25.
    2016-11-15 Slide 25 Public Where arewe now The control editor
  • 26.
    2016-11-15 Slide 26 Public Where arewe now The armor generator
  • 27.
    2016-11-15 Slide 27 Public Where arewe now The composite systems editor
  • 28.
    2016-11-15 Slide 28 Public ASOME –ASML Software Modeling Environment Likely to become a huge undertaking Requires a roadmap Obviously realized with a DSL and a Sirius based Roadmap editor Another ‘How to learn Sirius’ project
  • 29.
    2016-11-15 Slide 29 Public ASOME empoweredby Sirius Sirius supports ASOME’s development by • Being easy to learn • Allowing fast iterations, incremental delivery • Sufficiently expressive/powerful • Providing quick support for all kinds of questions in the fora Is there really no disadvantage or room for improvement?
  • 30.
    2016-11-15 Slide 30 Public ASOME empoweredby Sirius Improvement ideas • Support ‘reuse’ within tools by a procedure call and definition like mechanism • Also provide textual syntax for vsp definitions All have more or less the same behavior, currently realized by java service, would have preferred a ‘callable’ AQL specification
  • 31.
    2016-11-15 Slide 31 Public ASOME empoweredby Sirius Improvement ideas • Support ‘reuse’ within tools by a procedure call and definition like mechanism • Also provide textual syntax for vsp definitions • Optimize integration with textual editing frameworks, not everything is a picture (but a lot is) Location of editor not always ‘usable’. Open in separate edit window might also be nice.
  • 32.
    2016-11-15 Slide 32 Public ASML empoweredby Sirius Improvement areas ok, but are we happy? Yes we are! We are looking forward to integrate xtext editing capabilities in the IDE where text input is preferred We hope to optimize the integration between the textual parts and the graphical parts in our environment
  • 33.