SlideShare a Scribd company logo
1 of 72
Dirk Fahland
                                Amir Kantor
                                    David Lo
                               Shahar Maoz
                              Robert Pruefer

                    LSC Revisited
From Scenarios to Distributed Components
Setting: design a system



                           distributed into
                           several components




                                                1
Create a model for each component




                       model
                                 describes how the component
                                 works: behavior + interface




            model                model



           model of the system

                                                     2
distributed components
are hard to design….




                         3
Better: describe component interactions


   X   Z                            a scenario
                                X    describes behavior that
                                      is relevant to a user
                                     as a course of actions



                 Y                       Z




           specification of the system
                                                         4
The research problem

                                 synthesize


      X Z




  specification:                                         system model:
a set of scenarios                                        components
                     satisfies                exhibits
                                  system
                                 behavior


                                                                    6
First: semantics of scenarios

            1. how to describe all
              system behaviors?

                         2. how to describe
      X Z                   distributed behaviors




  specification:                                       system model:
a set of scenarios                                      components
                     satisfies              exhibits
                                  system
                                 behavior


                                                                  7
Live Sequence Charts
                    life line of a component

       event

                                                    prechart



  message                                           main chart


semantics:     if (and when) the prechart occurs,
               then also the mainchart occurs.
                                                          8
LSC have linear-time semantics


                   for every run
preA
                     if (and when) the prechart occurs,
                     then also the mainchart occurs.
 A     if preA

                 preB

       then
preB     mainA

 B               mainB




                                                9
Example: FTP server

              pre
             Login                     for every run
             Login                       if (and when) the prechart occurs,
                                         then also the mainchart occurs.




2 alternative runs of the FTP server
                                                                   10
CrossFTP: download command




                             11
CrossFTP: delete command




                           12
Example: FTP server
              pre
            Download                   for every run
             main                        if (and when) the prechart occurs,
             Download
                                         then also the main chart occurs.




2 alternative runs of the FTP server
                                                                   13
Example: FTP server

             pre
             Delete                    for every run
             main                        if (and when) the prechart occurs,
             Delete                      then also the main chart occurs.




2 alternative runs of the FTP server
                                                                   14
Propose: Branching-Time Interpretation
                          for every run
                            if (and when) the prechart
                            occurs,
                            there exists a continuation
                            with the main chart




Download
                 Delete
                                              15
Branching Time vs. Disjunction



                                      if

                                 then

                                      delete
                                 or



                                      download



                                       16
Branching Time vs. Disjunction




                                 17
Branching Time vs. Disjunction




                                 18
Branching vs Linear : CrossFTP
                                                 [Fahland, Lo, Maoz]




execution tree: width = 51 (alternative executions)

18 LSC strictly branching, incl. the 6 main FTP commands
       show different alternative use cases
9 LSC linear (and branching)
       show main invariants
                                                           19
Semantics of Scenarios

 LSC-style scenarios
 • prechart  main chart


 complete system specification needs
 • important invariants (linear time), and
 • all possible use cases (branching time)




                                             20
First: semantics of scenarios

            1. how to describe all system
              behaviors?

                         2. how to describe
      X Z                   distributed behaviors




  specification:                                       system model:
a set of scenarios                                      components
                     satisfies              exhibits
                                  system
                                 behavior


                                                                 21
LSC and distributed components


                             A




                        B        C



trace:



                                 22
LSC and distributed components


                                A
                            a




                        B           C



trace: a



                                    23
LSC and distributed components


                                A
                            a
                        b




                        B           C



trace: a b



                                    24
LSC and distributed components


                                A
                            a
                        b




                        B            C
                                 c




trace: a b c



                                     25
LSC and distributed components


                                             A
                                           a a
                                    b




                                    B                  C
                                              c
  a


trace: a b c a
            is forbidden to occur while chart still not complete
             abort chart (allowed because of cold events)
                                                        26
LSC and distributed components

                                                      abort:
                                             A        do not
                                           a a        execute ‘d’
                                    b




                                    B                   C
                                              c
  a


trace: a b c a
            is forbidden to occur while chart still not complete
             abort chart
                                                        27
Problems

                                                      abort:
                                             A        do not
                                           a a        execute ‘d’
                                    b




                                    B                   C
                                               c
  a
                 • abort message not specified in chart,
                   but needed in the system
trace: a b c a   • how does A know d did not happen yet?
                    more messages needed
                 • C is independent: how can A prevent d when
                   abort arrives “too late”
                                                        28
Sequential runs vs. distributed runs

                                                       abort:
                                               A       do not
                                             a a       execute ‘d’
                                      b




                                       B                 C
                                                c
    a

 this works only in presence of a global state
 but: each component has a local state, independent of others

 distributed runs (partial orders) instead of sequential runs

                                                         29
Solving the synthesis problem

                                 synthesize


      X Z




  specification:                                         system model:
a set of scenarios                                        components
                     satisfies                exhibits
                                  system
                                 behavior


                                                                   30
distributed LSC – Syntax

 an abstraction of LSC to its “core” elements
  (Fahland & Kantor 2012)

                b

                         prechart = labeled partial order
    a           c

                         + complete synchronization
    d           e


                         main chart = labeled partial order
     f     d

         dLSC
                                                            31
distributed LSC – Syntax

 an abstraction of LSC to its “core” elements


                                   A.a


                                   A.b


                                          B.c


                                                 C.d


       classical LSC                     dLSC
                                                 32
dLSC – Specification
                L1                            R0
E.ready              E.ready             M.ready


E.ready   E.alert                                    initial run

                L2                                                       L3
E.alert   M.ready                                  E.alert     M.ready

                               set of dLSCs
           M.go                                                 M.go


          M.treatA                                       M.transp   M.treatB


          M.ready                                  C.enroll    M.ready


                                                                    33
dLSC-Semantics: enabled charts
                L1
                                         pre-chart of L1 occurs
E.ready              E.ready   M.ready
                                         at the end of the run
                                         L1 is enabled
E.ready   E.alert
                                         L2/L3 are not enabled
                L2                                                L3
E.alert   M.ready                           E.alert     M.ready


           M.go                                          M.go


          M.treatA                                M.transp   M.treatB


          M.ready                           C.enroll    M.ready


                                                             34
dLSC-Semantics: append main chart
                L1
E.ready              E.ready             M.ready
                                                   L1 is enabled
                                                   append main chart
                                                      at enabling location
E.ready   E.alert    E.ready   E.alert

                L2                                                          L3
E.alert   M.ready                                      E.alert    M.ready


           M.go                                                    M.go


          M.treatA                                          M.transp   M.treatB


          M.ready                                     C.enroll    M.ready


                                                                       35
dLSC-Semantics: enabled charts
                L1
                                                   L1 is enabled
E.ready              E.ready             M.ready
                                                   L2/L3 are enabled
                                                    at the same location
E.ready   E.alert    E.ready   E.alert

                L2                                                          L3
E.alert   M.ready                                     E.alert     M.ready


           M.go                                                    M.go


          M.treatA                                          M.transp   M.treatB


          M.ready                                     C.enroll    M.ready


                                                                       36
dLSC-Semantics: append main chart
                L1
                                                         L2/L3 are enabled
E.ready                 E.ready               M.ready
                                                         at the same location
                                                         alternative
E.ready   E.alert       E.ready     E.alert                 continuations
                                                         alternative runs
                L2                                                                L3
                                               M.go
E.alert   M.ready    L1 still enabled                       E.alert     M.ready
                     (concurrent to L2/L3)    M.treatA
           M.go                                                          M.go
                                              M.ready
          M.treatA                                                M.transp   M.treatB


          M.ready                                           C.enroll    M.ready


                                                                             37
dLSC semantics – complex pre-charts




     L7 is enabled iff its prechart occurs as a dense set
                       at the end of the run

                                                            38
Semantics of a dLSC specification

 all runs that are
 • built from appending main charts of enabled dLSCs
 • maximal (cannot be extended)


 Expressive Power
                               for each transition t
                                                       p1   …   pn


      Petri nets                                            t

                                                       q1   …   qm
                 dLSC
              specifications
                                                                     39
Outline

                             synthesize


    X Z




specification:                                        system model:
a set of dLSC                                        Token History Net
                 satisfies                exhibits
                              system
                             behavior


                                                                  40
Petri nets
 place                               token on place ‘a’
                             a
transition
                            V

                 b               c

                 W               X

                 d               e

                      Y

                             f

                     a Petri net N
                                                          41
Distributed runs of a Petri net
                                                           a
                       a

                      V                       condition = a token on ‘a’
                                  enabled transition
          b                c

          W                   X

          d                e

               Y

                       f

              a Petri net N                       a run of N
                                                                        42
Distributed runs of a Petri net
                                                             a
                       a                 event =
                                  occurrence of V            V
                      V                                 b       c

          b                c
                                           conditions = tokens on ‘b’ and ‘c’
          W                   X

          d                e

               Y

                       f

              a Petri net N                         a run of N
                                                                        43
Distributed runs of a Petri net
                                           a
                       a
                                           V
                      V               b       c

          b                c           
                                       a
          W                   X

          d                e

               Y

                       f

              a Petri net N       a run of N
                                                   44
Distributed runs of a Petri net
                                           a
                       a
                                           V
                      V               b       c

          b                c           
                                       a
          W                   X
                                       V
          d                e       b       c
               Y

                       f

              a Petri net N       a run of N
                                                   45
Distributed runs of a Petri net
                                           a
                       a
                                           V
                      V               b       c

          b                c                  X
                                       a       e
          W                   X                    concurrent
                                       V
                                                   events
          d                e       b       c
               Y

                       f

              a Petri net N       a run of N
                                                        46
Distributed runs of a Petri net
                                           a
                       a
                                           V
                      V               b       c

          b                c                  X
                                       a       e
          W                   X
                                       V
          d                e       b       c
               Y                   W
                                   d
                       f

              a Petri net N       a run of N
                                                   47
Distributed runs of a Petri net
                                           a
                       a
                                           V
                      V               b       c

          b                c                  X
                                       a       e
          W                   X
                                       V
          d                e       b       c
               Y                   W
                                   d
                       f
                                               Y
              a Petri net N       a run of N
                                               f   48
Token Histories [Hee et al. 2008]
                                         token history:            a
    silent                    a
                                                                   V
transition                                    V                                V
                             V                                b       c
                                                                               X
                 b                c                                   X
                                                               a       e
                 W                   X        V
                                                               V
                                              V                                V
                 d                e                        b       c
                                                                           V       X
                      Y                       V            W
                                                           d               W
                              f               V
                                                                       Y       Y
                     a Petri net N            W           a run of N
                                                                       f   49
Token History Net
                             token history:            a
                 a
                                                       V
                                  V                                V
                 V                                b       c
                                                                   X
         b            c                                   X
                                                   a       e
         W            X           V
                                                   V
                                  V                                V
         d            e                        b       c
                                                               V       X
             Y                    V            W
                                               d               W
                 f                V
                                                           Y       Y
     a Token History net N        W           a run of N
                                                           f   50
Token History Nets: Guards

                     a                  a                     a
guard:
                                        V                     V
     V
                    V
                                    b       c             b       c
     V       b           c
                                                          
             W           X      is enabled               a
                               W not enabled
                                                          V
             d           e
                                                      b       c
                 Y

                     f                       and W are enabled
         a Token History Net
                                                                      51
Guards match past events

                             a                     a                           a
                                                   V                           V
                            V
                                           b           c                   b       c
                     b           c
                                                                          W       X
                     W           X         a                               d       e
                                           V                Y is enabled
guard:
                     d           e
                                       b       c
         V               Y
                                           W           X
   W         X               f                 d       e
                                                           Y not enabled
                 a Token History Net
                                                                           52
Outline

                             synthesize


    X Z




specification:                                        system model:
a set of dLSC                                        Token History Net
                 satisfies                exhibits
                              system
                             behavior


                                                                  53
dLSC main-chart  subnet of THN




E.alert   M.ready

                        M.go
           M.go


          M.treatA
                        M.treatA

          M.ready


                        M.ready


                             M.ready
                                       54
dLSC prechart  activation transition
                     E.alert                  M.ready
                                              guard = pre-chart
                                               E.alert          M.ready

E.alert   M.ready                             guard = local history
                               M.go             E.alert          M.ready
           M.go
                                              guard = local history

          M.treatA                              E.alert          M.ready
                               M.treatA
                                                          M.go
          M.ready
                                              guard:
                               M.ready           …


                                    M.ready
                                                            55
“Shared” places at start and end
                     E.alert                  M.ready
                                              guard = pre-chart
                                               E.alert          M.ready

E.alert   M.ready                             guard = local history
                               M.go             E.alert          M.ready
           M.go
                                              guard = local history

          M.treatA                              E.alert          M.ready
                               M.treatA
                                                          M.go
          M.ready
                                              guard:
                               M.ready           …


                                    M.ready
                                                            56
dLSC Specification  merge shared places
E.ready                           E.alert               M.ready


                                           



     E.ready       E.alert                  M.go


E.ready                 E.alert
                                            M.treatA




                                            M.ready


                                                 M.ready
                                                       57
Merge shared places
               E.ready
                                   E.alert              M.ready

                                            



 E.ready                 E.alert             M.go




                                             M.treatA




                                             M.ready



                                                        58
Synthesis procedure

 main chart  net structure
  • maximal places (same label as preceding event)
    are “shared”
 prechart  activation transition + history guard
  • consume from shared places
 initial run (same as main chart)
 merge shared places

Theorem: resulting Token History net has same runs as
           specification (up to  events)
polynomial time complexity


                                                     59
The research problem

                                 synthesize


      X Z




  specification:                                         system model:
a set of scenarios                                        components
                     satisfies                exhibits
                                  system
                                 behavior


                                                                   60
Distribute THN into components
               E.ready
                                   E.alert              M.ready
                                            



 E.ready                 E.alert             M.go




                                             M.treatA
 assumption: event name indicates
  component
group transitions to components
                                             M.ready
where to put  transitions?

                                                          61
Preserve Interactions



dLSC



        event due to
        activation transition

THN




                                62
Preserve Interactions



dLSC




THN



       changes interaction   preserves interaction
          forbidden              allowed
                                                     63
Preserve Interactions



dLSC




THN



       changes interaction   preserves interaction
          forbidden              allowed
                                                     64
…assign  to components (where possible)
               E.ready
                                   E.alert              M.ready
                                            



 E.ready                 E.alert             M.go




                                             M.treatA




                                             M.ready



                                                          65
…assign  to components (where possible)
               E.ready
                                   E.alert              M.ready
                                            



 E.ready                 E.alert             M.go




                                             M.treatA




                                             M.ready



                                                          66
…assign  to components (where possible)
               E.ready
                                   E.alert              M.ready
                                            



 E.ready                 E.alert             M.go




                                             M.treatA




                                             M.ready



                                                          67
Tool Support
www.win.tue.nl/~dfahland/tools/sam/




                                      68
Tool Support
www.win.tue.nl/~dfahland/tools/sam/




                                      69
Tool Support
www.win.tue.nl/~dfahland/tools/sam/




                                      70
Conclusion

 distributed LSCs
 • interpret LSC on partial orders,
 • using simple branching time semantics
 synthesis to Token History nets
 • polynomial time
 • complete (also for unbounded systems)
 see also: oclets (Fahland & Pruefer 2012)
 • similar to dLSC, support data & abstraction
 future work
 • generate software code (process partition Petri nets)
 • include data perspective
 • …                                                    71
about.me/dirk.fahland
                                   @dfahland

                    LSC Revisited
From Scenarios to Distributed Components

More Related Content

What's hot

24 33 -_metasploit
24 33 -_metasploit24 33 -_metasploit
24 33 -_metasploit
wozgeass
 

What's hot (6)

IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 
24 33 -_metasploit
24 33 -_metasploit24 33 -_metasploit
24 33 -_metasploit
 
Seminar
SeminarSeminar
Seminar
 
No Heap Remote Objects for Distributed real-time Java
No Heap Remote Objects for Distributed real-time JavaNo Heap Remote Objects for Distributed real-time Java
No Heap Remote Objects for Distributed real-time Java
 
Testing real-time Linux. What to test and how
Testing real-time Linux. What to test and how Testing real-time Linux. What to test and how
Testing real-time Linux. What to test and how
 
Operating systems question bank
Operating systems question bankOperating systems question bank
Operating systems question bank
 

Viewers also liked

CV_Svetislav Živković english
CV_Svetislav Živković englishCV_Svetislav Živković english
CV_Svetislav Živković english
Svetislav Zivkovic
 
El meu paisatge preferit presentació activitatppt
El meu paisatge preferit presentació activitatpptEl meu paisatge preferit presentació activitatppt
El meu paisatge preferit presentació activitatppt
rclemente364
 
Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]
Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]
Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]
BlogOpen
 
What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...
What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...
What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...
colin gray
 

Viewers also liked (13)

Cohesion gramatical taller
Cohesion gramatical tallerCohesion gramatical taller
Cohesion gramatical taller
 
CV_Svetislav Živković english
CV_Svetislav Živković englishCV_Svetislav Živković english
CV_Svetislav Živković english
 
Pe986 HPHT Well Control
Pe986 HPHT Well Control Pe986 HPHT Well Control
Pe986 HPHT Well Control
 
El meu paisatge preferit presentació activitatppt
El meu paisatge preferit presentació activitatpptEl meu paisatge preferit presentació activitatppt
El meu paisatge preferit presentació activitatppt
 
Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]
Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]
Aleksandar Vučić, politička polarizacija i diskurs na Tviteru [istraživanje]
 
Modelo para la elaboración de guías (1)
Modelo para la elaboración de guías (1)Modelo para la elaboración de guías (1)
Modelo para la elaboración de guías (1)
 
El text argumentatiu
El text argumentatiuEl text argumentatiu
El text argumentatiu
 
Els inicis de la literatura catalana
Els inicis de la literatura catalanaEls inicis de la literatura catalana
Els inicis de la literatura catalana
 
Biblioteca d'Humanitats Joan Regla
Biblioteca d'Humanitats Joan ReglaBiblioteca d'Humanitats Joan Regla
Biblioteca d'Humanitats Joan Regla
 
What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...
What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...
What Problem Are We Solving? Encouraging Idea Generation and Effective Team C...
 
Mehanicar poljoprivrednih mašina
Mehanicar poljoprivrednih mašina Mehanicar poljoprivrednih mašina
Mehanicar poljoprivrednih mašina
 
Handbook FMS
Handbook FMSHandbook FMS
Handbook FMS
 
[READING AND WRITING SKILLS] Text as a Discourse - Introduction
[READING AND WRITING SKILLS] Text as a Discourse - Introduction[READING AND WRITING SKILLS] Text as a Discourse - Introduction
[READING AND WRITING SKILLS] Text as a Discourse - Introduction
 

Similar to LSC Revisited - From Scenarios to Distributed Components

Machine learning with Apache Hama
Machine learning with Apache HamaMachine learning with Apache Hama
Machine learning with Apache Hama
Tommaso Teofili
 
Systems building-systems-a-puppet-story-19133
Systems building-systems-a-puppet-story-19133Systems building-systems-a-puppet-story-19133
Systems building-systems-a-puppet-story-19133
guestd90cb0
 
Unit 3 principles of programming language
Unit 3 principles of programming languageUnit 3 principles of programming language
Unit 3 principles of programming language
Vasavi College of Engg
 
Automated Planning as a Semantic Technology
Automated Planning as a Semantic TechnologyAutomated Planning as a Semantic Technology
Automated Planning as a Semantic Technology
Clark & Parsia LLC
 

Similar to LSC Revisited - From Scenarios to Distributed Components (20)

From Live Sequence Chart Specifications to Distributed Components
From Live Sequence Chart Specifications to Distributed ComponentsFrom Live Sequence Chart Specifications to Distributed Components
From Live Sequence Chart Specifications to Distributed Components
 
Metasploit Basics
Metasploit BasicsMetasploit Basics
Metasploit Basics
 
Machine learning with Apache Hama
Machine learning with Apache HamaMachine learning with Apache Hama
Machine learning with Apache Hama
 
Collaborative modeling and co simulation with destecs - a pilot study
Collaborative modeling and co simulation with destecs - a pilot studyCollaborative modeling and co simulation with destecs - a pilot study
Collaborative modeling and co simulation with destecs - a pilot study
 
Siggraph 2016 - Vulkan and nvidia : the essentials
Siggraph 2016 - Vulkan and nvidia : the essentialsSiggraph 2016 - Vulkan and nvidia : the essentials
Siggraph 2016 - Vulkan and nvidia : the essentials
 
Mining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution LogsMining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution Logs
 
Systems building-systems-a-puppet-story-19133
Systems building-systems-a-puppet-story-19133Systems building-systems-a-puppet-story-19133
Systems building-systems-a-puppet-story-19133
 
CRIU: are we there yet?
CRIU: are we there yet?CRIU: are we there yet?
CRIU: are we there yet?
 
Parsing and Type checking all 2^10000 configurations of the Linux kernel
Parsing and Type checking all 2^10000 configurations of the Linux kernelParsing and Type checking all 2^10000 configurations of the Linux kernel
Parsing and Type checking all 2^10000 configurations of the Linux kernel
 
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
 
Programming Language Memory Models: What do Shared Variables Mean?
Programming Language Memory Models: What do Shared Variables Mean?Programming Language Memory Models: What do Shared Variables Mean?
Programming Language Memory Models: What do Shared Variables Mean?
 
This is introduction to distributed systems for the revised curiculum
This is introduction to distributed systems for the revised curiculumThis is introduction to distributed systems for the revised curiculum
This is introduction to distributed systems for the revised curiculum
 
Unit 3 principles of programming language
Unit 3 principles of programming languageUnit 3 principles of programming language
Unit 3 principles of programming language
 
chen-06.ppt
chen-06.pptchen-06.ppt
chen-06.ppt
 
Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?Checkpoint/Restore: are we there yet?
Checkpoint/Restore: are we there yet?
 
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...
 
Cache-partitioning
Cache-partitioningCache-partitioning
Cache-partitioning
 
Automated Planning as a Semantic Technology
Automated Planning as a Semantic TechnologyAutomated Planning as a Semantic Technology
Automated Planning as a Semantic Technology
 
Architecture
ArchitectureArchitecture
Architecture
 
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
 

More from Dirk Fahland

Multi-Dimensional Process Analysis
Multi-Dimensional Process Analysis Multi-Dimensional Process Analysis
Multi-Dimensional Process Analysis
Dirk Fahland
 
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Dirk Fahland
 

More from Dirk Fahland (13)

Object-Centric Processes - from cases to objects and relations… and beyond
Object-Centric Processes - from cases to objects and relations… and beyondObject-Centric Processes - from cases to objects and relations… and beyond
Object-Centric Processes - from cases to objects and relations… and beyond
 
Multi-Dimensional Process Analysis
Multi-Dimensional Process Analysis Multi-Dimensional Process Analysis
Multi-Dimensional Process Analysis
 
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
Artifacts and Databases - the Need for Event Relation Graphs and Synchronous ...
 
Describing, Discovering, and Understanding Multi-Dimensional Processes
Describing, Discovering, and Understanding Multi-Dimensional ProcessesDescribing, Discovering, and Understanding Multi-Dimensional Processes
Describing, Discovering, and Understanding Multi-Dimensional Processes
 
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
Process Mining: Past, Present, and Open Challenges (AIST 2017 Keynote)
 
Where did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsWhere did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process models
 
Repairing Process Models to Match Reality
Repairing Process Models to Match RealityRepairing Process Models to Match Reality
Repairing Process Models to Match Reality
 
Process Mining for ERP Systems
Process Mining for ERP SystemsProcess Mining for ERP Systems
Process Mining for ERP Systems
 
Simplifying Mined Process Models
Simplifying Mined Process ModelsSimplifying Mined Process Models
Simplifying Mined Process Models
 
The Process of Process Modeling
The Process of Process ModelingThe Process of Process Modeling
The Process of Process Modeling
 
Behavioral Conformance of Artifact-Centric Process Models
Behavioral Conformance of Artifact-Centric Process ModelsBehavioral Conformance of Artifact-Centric Process Models
Behavioral Conformance of Artifact-Centric Process Models
 
Many-to-Many: Interactions in Artifact-Centric Choreographies
Many-to-Many: Interactions in Artifact-Centric ChoreographiesMany-to-Many: Interactions in Artifact-Centric Choreographies
Many-to-Many: Interactions in Artifact-Centric Choreographies
 
Artifacts - Processes with Multiple Instances
Artifacts - Processes with Multiple InstancesArtifacts - Processes with Multiple Instances
Artifacts - Processes with Multiple Instances
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

LSC Revisited - From Scenarios to Distributed Components

  • 1. Dirk Fahland Amir Kantor David Lo Shahar Maoz Robert Pruefer LSC Revisited From Scenarios to Distributed Components
  • 2. Setting: design a system distributed into several components 1
  • 3. Create a model for each component model describes how the component works: behavior + interface model model model of the system 2
  • 5. Better: describe component interactions X Z a scenario X  describes behavior that is relevant to a user  as a course of actions Y Z specification of the system 4
  • 6. The research problem synthesize X Z specification: system model: a set of scenarios components satisfies exhibits system behavior 6
  • 7. First: semantics of scenarios 1. how to describe all system behaviors? 2. how to describe X Z distributed behaviors specification: system model: a set of scenarios components satisfies exhibits system behavior 7
  • 8. Live Sequence Charts life line of a component event prechart message main chart semantics: if (and when) the prechart occurs, then also the mainchart occurs. 8
  • 9. LSC have linear-time semantics for every run preA if (and when) the prechart occurs, then also the mainchart occurs. A if preA preB then preB mainA B mainB 9
  • 10. Example: FTP server pre Login for every run Login if (and when) the prechart occurs, then also the mainchart occurs. 2 alternative runs of the FTP server 10
  • 13. Example: FTP server pre Download for every run main if (and when) the prechart occurs, Download then also the main chart occurs. 2 alternative runs of the FTP server 13
  • 14. Example: FTP server pre Delete for every run main if (and when) the prechart occurs, Delete then also the main chart occurs. 2 alternative runs of the FTP server 14
  • 15. Propose: Branching-Time Interpretation for every run if (and when) the prechart occurs, there exists a continuation with the main chart Download Delete 15
  • 16. Branching Time vs. Disjunction if then delete or download 16
  • 17. Branching Time vs. Disjunction 17
  • 18. Branching Time vs. Disjunction 18
  • 19. Branching vs Linear : CrossFTP [Fahland, Lo, Maoz] execution tree: width = 51 (alternative executions) 18 LSC strictly branching, incl. the 6 main FTP commands  show different alternative use cases 9 LSC linear (and branching)  show main invariants 19
  • 20. Semantics of Scenarios  LSC-style scenarios • prechart  main chart  complete system specification needs • important invariants (linear time), and • all possible use cases (branching time) 20
  • 21. First: semantics of scenarios 1. how to describe all system behaviors? 2. how to describe X Z distributed behaviors specification: system model: a set of scenarios components satisfies exhibits system behavior 21
  • 22. LSC and distributed components A B C trace: 22
  • 23. LSC and distributed components A a B C trace: a 23
  • 24. LSC and distributed components A a b B C trace: a b 24
  • 25. LSC and distributed components A a b B C c trace: a b c 25
  • 26. LSC and distributed components A a a b B C c a trace: a b c a is forbidden to occur while chart still not complete  abort chart (allowed because of cold events) 26
  • 27. LSC and distributed components abort: A do not a a execute ‘d’ b B C c a trace: a b c a is forbidden to occur while chart still not complete  abort chart 27
  • 28. Problems abort: A do not a a execute ‘d’ b B C c a • abort message not specified in chart, but needed in the system trace: a b c a • how does A know d did not happen yet?  more messages needed • C is independent: how can A prevent d when abort arrives “too late” 28
  • 29. Sequential runs vs. distributed runs abort: A do not a a execute ‘d’ b B C c a  this works only in presence of a global state  but: each component has a local state, independent of others  distributed runs (partial orders) instead of sequential runs 29
  • 30. Solving the synthesis problem synthesize X Z specification: system model: a set of scenarios components satisfies exhibits system behavior 30
  • 31. distributed LSC – Syntax  an abstraction of LSC to its “core” elements (Fahland & Kantor 2012) b prechart = labeled partial order a c + complete synchronization d e main chart = labeled partial order f d dLSC 31
  • 32. distributed LSC – Syntax  an abstraction of LSC to its “core” elements A.a A.b B.c C.d classical LSC dLSC 32
  • 33. dLSC – Specification L1 R0 E.ready E.ready M.ready E.ready E.alert initial run L2 L3 E.alert M.ready E.alert M.ready set of dLSCs M.go M.go M.treatA M.transp M.treatB M.ready C.enroll M.ready 33
  • 34. dLSC-Semantics: enabled charts L1 pre-chart of L1 occurs E.ready E.ready M.ready at the end of the run L1 is enabled E.ready E.alert L2/L3 are not enabled L2 L3 E.alert M.ready E.alert M.ready M.go M.go M.treatA M.transp M.treatB M.ready C.enroll M.ready 34
  • 35. dLSC-Semantics: append main chart L1 E.ready E.ready M.ready L1 is enabled append main chart at enabling location E.ready E.alert E.ready E.alert L2 L3 E.alert M.ready E.alert M.ready M.go M.go M.treatA M.transp M.treatB M.ready C.enroll M.ready 35
  • 36. dLSC-Semantics: enabled charts L1 L1 is enabled E.ready E.ready M.ready L2/L3 are enabled at the same location E.ready E.alert E.ready E.alert L2 L3 E.alert M.ready E.alert M.ready M.go M.go M.treatA M.transp M.treatB M.ready C.enroll M.ready 36
  • 37. dLSC-Semantics: append main chart L1 L2/L3 are enabled E.ready E.ready M.ready at the same location alternative E.ready E.alert E.ready E.alert continuations alternative runs L2 L3 M.go E.alert M.ready L1 still enabled E.alert M.ready (concurrent to L2/L3) M.treatA M.go M.go M.ready M.treatA M.transp M.treatB M.ready C.enroll M.ready 37
  • 38. dLSC semantics – complex pre-charts L7 is enabled iff its prechart occurs as a dense set at the end of the run 38
  • 39. Semantics of a dLSC specification  all runs that are • built from appending main charts of enabled dLSCs • maximal (cannot be extended)  Expressive Power for each transition t p1 … pn Petri nets t q1 … qm dLSC specifications 39
  • 40. Outline synthesize X Z specification: system model: a set of dLSC Token History Net satisfies exhibits system behavior 40
  • 41. Petri nets place token on place ‘a’ a transition  V b c W X d e Y f a Petri net N 41
  • 42. Distributed runs of a Petri net a a  V condition = a token on ‘a’ enabled transition b c W X d e Y f a Petri net N a run of N 42
  • 43. Distributed runs of a Petri net a a event = occurrence of V V  V b c b c conditions = tokens on ‘b’ and ‘c’ W X d e Y f a Petri net N a run of N 43
  • 44. Distributed runs of a Petri net a a V  V b c b c  a W X d e Y f a Petri net N a run of N 44
  • 45. Distributed runs of a Petri net a a V  V b c b c  a W X V d e b c Y f a Petri net N a run of N 45
  • 46. Distributed runs of a Petri net a a V  V b c b c  X a e W X concurrent V events d e b c Y f a Petri net N a run of N 46
  • 47. Distributed runs of a Petri net a a V  V b c b c  X a e W X V d e b c Y W d f a Petri net N a run of N 47
  • 48. Distributed runs of a Petri net a a V  V b c b c  X a e W X V d e b c Y W d f Y a Petri net N a run of N f 48
  • 49. Token Histories [Hee et al. 2008] token history: a silent a V transition V V  V b c X b c  X a e W X V V V V d e b c V X Y V W d W f V Y Y a Petri net N W a run of N f 49
  • 50. Token History Net token history: a a V V V  V b c X b c  X a e W X V V V V d e b c V X Y V W d W f V Y Y a Token History net N W a run of N f 50
  • 51. Token History Nets: Guards a a a guard: V V V  V b c b c V b c  W X  is enabled a W not enabled V d e b c Y f  and W are enabled a Token History Net 51
  • 52. Guards match past events a a a V V  V b c b c b c  W X W X a d e V Y is enabled guard: d e b c V Y W X W X f d e Y not enabled a Token History Net 52
  • 53. Outline synthesize X Z specification: system model: a set of dLSC Token History Net satisfies exhibits system behavior 53
  • 54. dLSC main-chart  subnet of THN E.alert M.ready M.go M.go M.treatA M.treatA M.ready M.ready M.ready 54
  • 55. dLSC prechart  activation transition E.alert M.ready guard = pre-chart  E.alert M.ready E.alert M.ready guard = local history M.go E.alert M.ready M.go guard = local history M.treatA E.alert M.ready M.treatA M.go M.ready guard: M.ready … M.ready 55
  • 56. “Shared” places at start and end E.alert M.ready guard = pre-chart  E.alert M.ready E.alert M.ready guard = local history M.go E.alert M.ready M.go guard = local history M.treatA E.alert M.ready M.treatA M.go M.ready guard: M.ready … M.ready 56
  • 57. dLSC Specification  merge shared places E.ready E.alert M.ready   E.ready E.alert M.go E.ready E.alert M.treatA M.ready M.ready 57
  • 58. Merge shared places E.ready E.alert M.ready   E.ready E.alert M.go M.treatA M.ready 58
  • 59. Synthesis procedure  main chart  net structure • maximal places (same label as preceding event) are “shared”  prechart  activation transition + history guard • consume from shared places  initial run (same as main chart)  merge shared places Theorem: resulting Token History net has same runs as specification (up to  events) polynomial time complexity 59
  • 60. The research problem synthesize X Z specification: system model: a set of scenarios components satisfies exhibits system behavior 60
  • 61. Distribute THN into components E.ready E.alert M.ready   E.ready E.alert M.go M.treatA  assumption: event name indicates component group transitions to components M.ready where to put  transitions? 61
  • 62. Preserve Interactions dLSC event due to activation transition THN 62
  • 63. Preserve Interactions dLSC THN changes interaction preserves interaction  forbidden  allowed 63
  • 64. Preserve Interactions dLSC THN changes interaction preserves interaction  forbidden  allowed 64
  • 65. …assign  to components (where possible) E.ready E.alert M.ready   E.ready E.alert M.go M.treatA M.ready 65
  • 66. …assign  to components (where possible) E.ready E.alert M.ready   E.ready E.alert M.go M.treatA M.ready 66
  • 67. …assign  to components (where possible) E.ready E.alert M.ready   E.ready E.alert M.go M.treatA M.ready 67
  • 71. Conclusion  distributed LSCs • interpret LSC on partial orders, • using simple branching time semantics  synthesis to Token History nets • polynomial time • complete (also for unbounded systems)  see also: oclets (Fahland & Pruefer 2012) • similar to dLSC, support data & abstraction  future work • generate software code (process partition Petri nets) • include data perspective • … 71
  • 72. about.me/dirk.fahland @dfahland LSC Revisited From Scenarios to Distributed Components