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
Motivation Department of Computer Science Institute of Systems Architecture, Computer Networks Group Modeling Languages Programming Languages Language Engineering, Cham: Springer International Publishing, 2014, pp. 141–160. Modeling & Programming Languages taken from: T Family for Role - Based Modeling and Programming Languages, Helena- DCI (in Onto-UML JavaStage NextEJ Rumer Approach Scala) (2012) (2012) (2009) (2007) (2014) (2009) Metamodel powerJava ORM 2 Raw OT/J INM (2009) for Roles (2006) (2005) (2006) (2005) (2007) • roles allows for an intuitive separation of static and dynamic, context - dependent behavior . Kühn, et al., “ • investigation of roles throughout all steps of the ” in Software A Metamodel software development process and across all layers of developed software applications DFG · RoSI · Martin Weißbach 2
Motivation Department of Computer Science Institute of Systems Architecture, Computer Networks Group Compartment Role Object Model Formal Foundation (CROM) [3],[4] LyRT SCROLL Programming Language / [1],[2] [6] Framework Runtime Environment Java Virtual Machine (JVM) RSQL Database [4] DFG · RoSI · Martin Weißbach 3
Department of Computer Science Institute of Systems Architecture, Computer Networks Group Our Assumed Role Model DFG · RoSI · Martin Weißbach 4
Our Assumed Role Model Department of Computer Science Institute of Systems Architecture, Computer Networks Group BrightEnvironment BrightDisplay +displayContent() LowBandwidth objects may LazyLoading objects may play features of an acquire and +fetchData() Browser different roles object can be +fetchData() abandon roles HighBandwidth +displayContent() simultaneously role - specific EagerLoading dynamically +fetchData() Downloadable +download() +save(File) DFG · RoSI · Martin Weißbach 5
Our Assumed Role Model Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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 Browser • features of an object can be role - specific +fetchData() • an object and its roles share identity +displayContent() • an object and its roles have different identity • roles depend on compartments Downloadable +download() • compartments have their own identity +save(File) 6 DFG · RoSI · Martin Weißbach
Role States Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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? Application D1:Downloadable B1:Browser B1:Browser D1:Downloadable Runtime Database B1:Browser D1:Downloadable 7 DFG · RoSI · Martin Weißbach
Application Layer (AL) Department of Computer Science Institute of Systems Architecture, Computer Networks Group Application Layer • Bound Active roles’ behavior is ‘visible’ to the user Active Not Bound • Bound Passive roles’ Existent Passive behavior is not perceivable • role - base application thats behavior can be modified dynamically at run time (through roles) LowBandwidth • user - interaction, business logic etc. LazyLoading HighBandwidth B1:Browser EagerLoading DFG · RoSI · Martin Weißbach 8
Runtime Environment Layer (REL) Department of Computer Science Institute of Systems Architecture, Computer Networks Group Runtime Environment Layer • Bound roles are considered for the method dispatch Player Not • Unbound states are Existent Unbound transparent for the Compartment Bound application and transient • book - keeping of currently played roles (binding information) fetchData() • dispatch of method invocations B1:Browser • creation, deletion, binding etc. of roles fetchData() LazyLoading HighBandwidth EagerLoading DFG · RoSI · Martin Weißbach 9
Persistence Layer (PL) Department of Computer Science Institute of Systems Architecture, Computer Networks Group Persistence Layer Not • Bound roles are stored to the Bound Existent database • mapping of the programming - language specific object instances of roles and players to their respective representation on the database layer • autonomous storage to the database on changes made to the objects DFG · RoSI · Martin Weißbach 10
Database Layer (DBL) Department of Computer Science Institute of Systems Architecture, Computer Networks Group Database Layer • Only information about roles Not being bound to players are Bound Existent required being persistent • stores roles, players and bind information persistently DFG · RoSI · Martin Weißbach 11
Global Role State Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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 DFG · RoSI · Martin Weißbach
Create and Store a Role Department of Computer Science Institute of Systems Architecture, Computer Networks Group C1:BrightEnvironment P1:Browser R1:BrightDisplay bound not Application Layer bound Passive existent Active Unbound Player not Runtime Environment Layer bound existent Unbound Compartment not Persistence Layer bound existent not bound Database Layer existent DFG · RoSI · Martin Weißbach 13
Reload a Role from the Database Department of Computer Science Institute of Systems Architecture, Computer Networks Group C1:BrightEnvironment P1:Browser R1:BrightDisplay bound not Application Layer bound Passive existent Active Unbound Player not Runtime Environment Layer bound existent Unbound Compartment not Persistence Layer bound existent bound Database Layer DFG · RoSI · Martin Weißbach 14
The Global State Manager Department of Computer Science Institute of Systems Architecture, Computer Networks Group C1:BrightEnvironment P1:Browser R1:Downloadable Application Layer bound Active Global State Manager Runtime Environment Layer bound Persistence Layer bound bound Database Layer DFG · RoSI · Martin Weißbach 15
The Global State Manager Department of Computer Science Institute of Systems Architecture, Computer Networks Group …knows… Global State Manager R1 • the roles in the {ba,b,nex,nex} {ba,b,nex,nex} R6 system {ba,b,nex,nex} • their current state on R2 each layer {ba,b,b,b} R3 R4 {nex,nex,nex,nex} R7 {bp,b,nex,nex} R5 {nex,nex,nex,b} {AL,REL,PL,DBL} DFG · RoSI · Martin Weißbach 16
Benefits Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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 DFG · RoSI · Martin Weißbach
The Global State Manager Department of Computer Science Institute of Systems Architecture, Computer Networks Group …knows… Global State Manager {ba,b,nex,nex} R1 constraint • the roles in the {ba,b,nex,nex} to be R6 P2 P1 system always played • their current state on R2 together {ba,b,nex,nex} each layer collaboration • roles and their {ba,b,b,b} R3 P3 P4 players • the object net of R4 players {bp,b,nex,nex} R5 P5 {nex,nex,nex,b} {AL,REL,PL,DBL} DFG · RoSI · Martin Weißbach 18
Benefits Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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 DFG · RoSI · Martin Weißbach
Conclusion Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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 DFG · RoSI · Martin Weißbach
Future Work Department of Computer Science Institute of Systems Architecture, Computer Networks Group • 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 DFG · RoSI · Martin Weißbach
Department of Computer Science Institute of Systems Architecture, Computer Networks Group Thank you for your attention! Questions?
Recommend
More recommend