Runtime Model for Role-based Software Systems Tobias Jckel * , - - PowerPoint PPT Presentation

runtime model for role based software systems
SMART_READER_LITE
LIVE PREVIEW

Runtime Model for Role-based Software Systems Tobias Jckel * , - - PowerPoint PPT Presentation

Department of Computer Science Institute of Systems Architecture, Computer Networks Group Position Paper: Runtime Model for Role-based Software Systems Tobias Jckel * , Martin Weibach , Kai Herrmann * , Hannes Voigt * , Max Leuthuser


slide-1
SLIDE 1

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

Position Paper:

Runtime Model for Role-based Software Systems

Tobias Jäckel*, Martin Weißbach†, Kai Herrmann*, Hannes Voigt*, Max Leuthäuser‡

* Database Systems Group † Computer Networks Group ‡ Software

Technology Group

slide-2
SLIDE 2

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

Modeling Languages Programming Languages

2

Motivation

Helena- Approach (2014) Onto-UML (2012) DCI (in Scala) (2009) INM (2009) Metamodel for Roles (2007) JavaStage (2012) NextEJ (2009) Rumer (2007) powerJava (2006) OT/J (2005)

  • roles allows for an intuitive separation of static and

dynamic, context-dependent behavior

  • investigation of roles throughout all steps of the

software development process and across all layers

  • f developed software applications

ORM 2 (2005) Raw (2006)

Modeling & Programming Languages taken from: T . Kühn, et al., “ A Metamodel Family for Role-Based Modeling and Programming Languages, ” in Software Language Engineering, Cham: Springer International Publishing, 2014, pp. 141–160.

slide-3
SLIDE 3

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

Compartment Role Object Model (CROM) [3],[4]

3

Motivation

Programming Language / Framework Database

LyRT [1],[2] SCROLL [6] RSQL [4]

Runtime Environment

Java Virtual Machine (JVM)

Formal Foundation

slide-4
SLIDE 4

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

Our Assumed Role Model

4

slide-5
SLIDE 5

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

HighBandwidth BrightEnvironment LowBandwidth

5

Our Assumed Role Model

LazyLoading

+fetchData()

EagerLoading

+fetchData()

Browser

+fetchData() +displayContent()

Downloadable

+download() +save(File)

BrightDisplay

+displayContent()

  • bjects may play

different roles simultaneously

  • bjects may

acquire and abandon roles dynamically features of an

  • bject can be

role-specific

slide-6
SLIDE 6

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • Roles have properties and behaviors
  • objects may play different roles simultaneously
  • objects may acquire and abandon roles dynamically
  • roles can be transferred between objects
  • the state of an object can be role-specific
  • features of an object can be role-specific
  • an object and its roles share identity
  • an object and its roles have different identity
  • roles depend on compartments
  • compartments have their own identity

6

Our Assumed Role Model

Browser

+fetchData() +displayContent()

Downloadable

+download() +save(File)

slide-7
SLIDE 7

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • applied role concept to different layers of the

application independently

  • Are the states of roles the same on each layer?
  • Are any transitions between layer-specific role states

possible?

7

Role States

B1:Browser D1:Downloadable

Database Runtime

B1:Browser D1:Downloadable

Application

B1:Browser D1:Downloadable

slide-8
SLIDE 8

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

LowBandwidth HighBandwidth

8

Application Layer (AL)

Application Layer Not Existent Bound Active Passive

  • Bound Active roles’ behavior

is ‘visible’ to the user

  • Bound Passive roles’

behavior is not perceivable

  • role-base application thats behavior can be modified

dynamically at run time (through roles)

  • user-interaction, business logic etc.

B1:Browser LazyLoading EagerLoading

slide-9
SLIDE 9

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach 9

Runtime Environment Layer (REL)

Runtime Environment Layer Not Existent Unbound Player Compartment Bound

  • Bound roles are considered

for the method dispatch

  • Unbound states are

transparent for the application and transient

  • book-keeping of currently played roles (binding

information)

  • dispatch of method invocations
  • creation, deletion, binding etc. of roles

B1:Browser LazyLoading EagerLoading

fetchData()

HighBandwidth

fetchData()

slide-10
SLIDE 10

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • mapping of the programming-language specific
  • bject instances of roles and players to their

respective representation on the database layer

  • autonomous storage to the database on changes

made to the objects

10

Persistence Layer (PL)

Persistence Layer Not Existent Bound

  • Bound roles are stored to the

database

slide-11
SLIDE 11

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach 11

Database Layer (DBL)

Database Layer Not Existent Bound

  • Only information about roles

being bound to players are required being persistent

  • stores roles, players and bind information persistently
slide-12
SLIDE 12

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • combinatorics allow invalid states → might also occur

if the system is left unattended

  • motivation: roles instances might exist on a single

layer only, but the “entity” of the role cuts all layers in the layer stack

  • limit space of possible transitions of a role, globally in

the system

12

Global Role State

slide-13
SLIDE 13

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach 13

Create and Store a Role

Runtime Environment Layer Database Layer Persistence Layer Application Layer

P1:Browser R1:BrightDisplay not existent not existent not existent not existent C1:BrightEnvironment Unbound Player Unbound Compartment bound bound Passive bound Active bound bound

slide-14
SLIDE 14

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach 14

Reload a Role from the Database

Runtime Environment Layer Database Layer Persistence Layer Application Layer

P1:Browser R1:BrightDisplay C1:BrightEnvironment bound not existent not existent not existent bound Unbound Player Unbound Compartment bound bound Passive bound Active

slide-15
SLIDE 15

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach 15

The Global State Manager

Runtime Environment Layer Database Layer Persistence Layer Application Layer

P1:Browser R1:Downloadable C1:BrightEnvironment bound bound bound bound Active Global State Manager

slide-16
SLIDE 16

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

Global State Manager

16

The Global State Manager

R1 R6 R3 R4 R5 R2

…knows…

  • the roles in the

system

  • their current state on

each layer

R7

{ba,b,b,b} {AL,REL,PL,DBL} {nex,nex,nex,nex} {ba,b,nex,nex} {bp,b,nex,nex} {ba,b,nex,nex} {nex,nex,nex,b} {ba,b,nex,nex}

slide-17
SLIDE 17

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • transitions of global role states can be checked at run

time

  • model can be used to check the system in advance

for correctness

  • possibly especially interesting in the case of

constraints or collaborations between roles

17

Benefits

slide-18
SLIDE 18

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

Global State Manager

18

The Global State Manager

R1 R6 R3 R4 R5 R2

…knows…

  • the roles in the

system

  • their current state on

each layer

  • roles and their

players

  • the object net of

players

{ba,b,b,b} {AL,REL,PL,DBL} {ba,b,nex,nex} {bp,b,nex,nex} {ba,b,nex,nex} {nex,nex,nex,b} {ba,b,nex,nex}

P2

constraint to be always played together collaboration

P3 P1 P4 P5

slide-19
SLIDE 19

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • transitions of global role states can be checked at run

time

  • transactional changes of multiple roles can both be

checked and guided

  • model can be used to check the system in advance

for correctness

  • possibly especially interesting in the case of

constraints or collaborations between roles

19

Benefits

slide-20
SLIDE 20

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • role-concept on the modeling and programming

language level

  • exemplary investigation of the role-concept in an

entire software application

  • argument to incorporate the concept in a run-time

model to allow for dynamic adaptation and validation

20

Conclusion

slide-21
SLIDE 21

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

  • refinement of layers
  • superset of role models that fulfil the state machine
  • different quality / isolation levels
  • e.g. transactional storage of changes of role

bindings / creations vs. lazy storage that allows information loss

  • distributed settings & decentralization aspects

21

Future Work

slide-22
SLIDE 22

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

Thank you for your attention!

Questions?

slide-23
SLIDE 23

Department of Computer Science Institute of Systems Architecture, Computer Networks Group

DFG · RoSI · Martin Weißbach

[1] Nguonly Taing, Thomas Springer, Nicolás Cardozo, Alexander Schill: A Dynamic Instance Binding Mechanism Supporting Run-Time Variability of Role-Based Software Systems. Modularity Companion 2016, Màlaga, Spain [2] Nguonly Taing, Markus Wutzler, Thomas Springer, Nicolás Cardozo, Alexander Schill: Consistent Unanticipated Adaptation for Context- Dependent Applications. To appear at COP'16, 2016, Rome, Italy [3] Thomas Kühn, Max Leuthäuser, Sebastian Götz, Christoph Seidl, Uwe Aßmann: A Metamodel Family for Role-Based Modeling and Programming Languages, In Proc. of the 7th International Conference on Software Language Engineering (SLE 2014), 2014. [4] Tobias Jäkel, Thomas Kühn, Hannes Voigt, Wolfgang Lehner: RSQL - A Query Language for Dynamic Data Types. In Proc. of the 18th International Database Engineering & Applications Symposium (IDEAS '14), 2014. [5] Thomas Kühn, Stephan Böhme, Sebastian Götz: A Combined Formal Model for Relational Context-Dependent Roles. In Proc. of SLE'15, ACM, 2015. [6] Max Leuthäuser: SCROLL - A Scala-based library for Roles at Runtime. In Proc. of the 3rd Workshop on Domain-Specific Language Design and Implementation (DSLDI 2015)

23

References