Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Benchmarking for Graph Transformation Gergely Varró.

Slides:



Advertisements
Similar presentations
2009 – E. Félix Security DSL Toward model-based security engineering: developing a security analysis DSML Véronique Normand, Edith Félix, Thales Research.
Advertisements

Budapest University of Technology and EconomicsDagstuhl 2004 Department of Measurement and Information Systems 1 Towards Automated Formal Verification.
 Lex helps to specify lexical analyzers by specifying regular expression  i/p notation for lex tool is lex language and the tool itself is refered to.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
SKELETON BASED PERFORMANCE PREDICTION ON SHARED NETWORKS Sukhdeep Sodhi Microsoft Corp Jaspal Subhlok University of Houston.
McGill University School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab MPM’09 Explicit Transformation Modelling Thomas.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Course Instructor: Aisha Azeem
McGill University Proposal Exam School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
Query Processing Presented by Aung S. Win.
Self-Organizing Agents for Grid Load Balancing Junwei Cao Fifth IEEE/ACM International Workshop on Grid Computing (GRID'04)
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Invitation to Computer Science 5th Edition
CS 355 – Programming Languages
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Budapest University of Technology and Economics Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans Gergely Varró.
Context Tailoring the DBMS –To support particular applications Beyond alphanumerical data Beyond retrieve + process –To support particular hardware New.
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
UML based dependability modeling, analysis and synthesis Proposers: TU Budapest: A. Pataricza, Gy. Csertán, I. Majzik, D. Varró PDCC Pisa: L. Simoncini,
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Ohio State University Department of Computer Science and Engineering Automatic Data Virtualization - Supporting XML based abstractions on HDF5 Datasets.
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
TYX CORPORATION Page 1 © Copyright TYX Corporation 2006 TYX TestBase Development of Diagnostics with DSI eXpress and TYX TestBase For eXpress versions.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Generative Programming. Automated Assembly Lines.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
1 Introduction to Software Engineering Lecture 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
The Volcano Optimizer Generator Extensibility and Efficient Search.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Visual Specification of a DSL Processor Debugger Tamás Mészáros and Tihamér Levendovszky Budapest University of Technology and Economics.
Chapter 3 Part II Describing Syntax and Semantics.
Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Budapest University of Technology and Economics Department of Computer Science and Information Theory 1 Graph Transformation in Relational Databases Gergely.
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
The Interpreter Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Lecture 15: Query Optimization. Very Big Picture Usually, there are many possible query execution plans. The optimizer is trying to chose a good one.
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
Michael J. Voss and Rudolf Eigenmann PPoPP, ‘01 (Presented by Kanad Sinha)
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
IST 210 Database Design Process IST 210, Section 1 Todd S. Bacastow January 2004.
16 April 2011 Alan, Edison, etc, Saturday.. Knowledge, Planning and Robotics 1.Knowledge 2.Types of knowledge 3.Representation of knowledge 4.Planning.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Model-Driven Analysis Frameworks for Embedded Systems
Objective of This Course
CSc4730/6730 Scientific Visualization
Programming Languages 2nd edition Tucker and Noonan
Query Optimization.
TensorFlow: A System for Large-Scale Machine Learning
Presentation transcript:

Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Benchmarking for Graph Transformation Gergely Varró Andy Schürr Dániel Varró

2 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Talk overview Introduction GT overview Paradigm & tool features Benchmarking terminology Measurements

3 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Model transformation in MDD Model Driven Development (MDD) –thorough system modeling before implementation –precise and visual SW models on a high abstraction level from different viewpoints –automatic code generation Model transformation –automated translations within and between visual modeling languages MDD requirements on model transformation: –Specification: high-level specification language –Execution: efficient algorithms and techniques –Industrialization: extensive tool support Upcoming standard: QVT

4 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Specification techniques for MT QVT Main features: –object based patterns –precondition –unidirectional –bidirectional Problems: –immature tool support –lack of experience GT Main features: –similar to QVT –wide tool support Problems: –non-bidirectional (except for TGGs) Pattern matching phase: –most critical issue from performance viewpoint –same as in QVT

5 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Benchmarking Aim: –systematic and reproducable measurements –on performance –under different and precisely defined circumstances Overall goal: Ihelp system engineers in selecting tools Popular approach in different fields –AI –relational databases –rule-based expert systems

6 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Benchmarking in model transformation Specification examples for MT –Goal: assessing expressiveness –UML-to-XMI, object-relational mapping, UML-to-EJB, etc. No performance benchmarks for MT In the paper: Benchmarks for graph transformation tools –terminology for benchmarking –quantitative comparison of tools Ongoing research: – Benchmarks for general model transformation tools

7 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Talk overview Introduction GT overview Paradigm & tool features Benchmarking terminology Measurements

8 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Metamodel Metamodeling h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by next blocked held_by releasetoken request * 1 * 1 * 111 ** * * Class Association Multiplicity constraint At most one Arbitrary p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource Resource Process Object Link Slot Inheritance Attribute Instance model

9 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Graph transformation rule r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS Negative applicationc ondition p1:Process r:Resource GiveRule n:next p2:Process rel:release p1:Process r:Resource n:next p2:Process t:token LHSRHS Left-Hand Side Right-Hand Side

10 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Pattern matching phase h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS

11 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Updating phase h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl:release

12 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Talk overview Introduction GT overview Paradigm & tool features Benchmarking terminology Measurements

13 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Paradigm features Definition: problem characteristics Model size –number of nodes and edges in the model graph Pattern size –number of nodes and edges in the LHS graph Fan-out (maximum degree of model nodes) –number of edges adjacent to a certain node Number of matchings Transformation sequence length

14 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Tool features Definition: typical optimization strategies supported by different tools Multiplicity based optimization –More powerful strategy when traversing edges with ‘at most one’ (0..1) multiplicity Parameter passing Parallel rule execution ‘As long as possible’ (ALAP) rule application Indexes (for key/index attributes) Incremental pattern matching...

15 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Parameter passing I. h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl1:release Between consecutive rule applications No recalculation in later steps

16 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Parameter passing II. rl1:release n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource p1:Process r:Resource GiveRule n:next p2:Process rel:release p1:Process r:Resource n:next p2:Process t:token LHSRHS t1:token

17 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Parallel rule execution (PM) h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS Calculation of all matchings Independent matchings

18 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Parallel rule execution (Update) h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl1:release rl3:release rl2:release rl4:release No re-evaluation of valid matchings Transaction block

19 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Talk overview Introduction GT overview Paradigm & tool features Benchmarking terminology Measurements

20 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology I. Metamodel GT rules Instance model Transformation sequence Paradigm features Tool features Scenario –––––– –Broad application field of graph transformation model analysis model transformation visual languages with dynamic operational semantics –Informal characteristics

21 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology II. Metamodel GT rules Instance model Transformation sequence Paradigm features Tool features Scenario –––––– Benchmark example ++–––– next blocked held_by releasetoken request * 1 * 1 * 111 ** * * Resource Process TakeRule RequestRule GiveRule ReleaseRule LHSRHS Incarnation of a scenario –fulfills the informal characteristics –e.g. Mutex for the simulation of visual languages

22 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology III. Metamodel GT rules Instance model Transformation sequence Paradigm features Tool features Scenario –––––– Benchmark example ++–––– Test set ++ PD – h1:held_by nN:next n1:next hN:held_by p1:Process p2:Process pN:ProcessrN:Resource r1:Resource Instance model 1.N ReleaseRule 2.N GiveRule 3.N RequestRule 4.N TakeRule Parametric and deterministic specification

23 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology IV. Metamodel GT rules Instance model Transformation sequence Paradigm features Tool features Scenario –––––– Benchmark example ++–––– Test set ++ PD – Test case ++ PD + Multiplicity based optimization: OFF Parameter passing: OFF Parallel rule execution: ON

24 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology V. Metamodel GT rules Instance model Transformation sequence Paradigm features Tool features Scenario –––––– Benchmark example ++–––– Test set ++ PD – Test case ++ PD + Run Complete characterization Reproducable measurements N = 10

25 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Talk overview Introduction GT overview Paradigm & tool features Benchmarking terminology Measurements

26 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Categorization Style –Interpreted: AGG, GTDB –Compiled: PROGRES, Fujaba Base algorithm –Constraint satisfaction: AGG, GTDB variables + constraints –Local searches: Fujaba, PROGRES step-by-step extension of the matching

27 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Environment Hardware and OS –1500 MHz Pentium –768 MB RAM –Linux kernel of version Tool related –Runs without GUI –Rule applications guided by Java programs PROGRES: guided by C program –Standard services of the default distribution fine-tuning based on developers’ suggestions

28 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Tool specific issues AGG –Manual implementation of parameter passing Progres –GRAS (default underlying graph-oriented database) –Prolog-style cuts (determinism) –User undo/redo mechanism being switched off Fujaba –Additional node for storing processes and resources –Slightly altered models to provide better performance GTDB –MySQL (version 4.1.7) –No additional optimization

29 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Tool feature support Multiplicity based optimization Parameter passing Parallel rule application AGG –+– PROGRES +++ Fujaba +++ GTDB –++

30 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Quantitative comparison Result set clean-up procedure Constant overhead distributed over more rule applications Compilation step from graphs to categories in each GT step

31 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Effect of multiplicity based optimization GiveRule ReleaseRule AGGPROGRESFUJABAGTDB

32 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Effect of parameter passing AGGPROGRESFUJABAGTDB STS test set, Pattern matching phase, ReleaseRule

33 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Effect of parallel rule application AGGPROGRESFUJABAGTDB ALAP test set, Pattern matching phase, ReleaseRule

34 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Thanks for your kind attention Contributions to model transformation benchmarking are welcome –additional benchmark examples, test sets, test cases –participation of further tools –new optimization strategies Benchmark example descriptions, specifications, and measurement results –

35 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Tool feature support Parameter passing Parallel rule application Multiplicity based optimization ALAP rule application AGG +––– PROGRES +++– Fujaba +++– GTDB ++––

36 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology Metamodel GT rules Instance model Transformation sequence Paradigm features Tool features Scenario –––––– Benchmark example ++–––– Test set ++ PD – Test case ++ PD + Run

37 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Model driven development Aim: –thorough system modeling before implementation Key idea: –SW models on various abstraction levels and from different viewpoints –automatic code generation Key requirement: –decision and design support for domain experts –precise and visual models on a high abstraction level

38 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Model transformations in MDD Aim: –automated translations within and between (visual) modeling languages MDD requirements on model transformation: –Specification: high-level specification language –Execution: efficient algorithms and techniques –Industrialization: extensive tool support Model transformation tool categories –direct manipulation, relational, graph transformation based, structure driven, hybrid, XSLT based

39 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Benchmarking in model transformation Specification benchmarks for MT –Goal: assessing expressiveness –UML-to-XMI, object-relational mapping, UML-to-EJB, etc. No performance benchmarks for MT In the paper: Benchmarks for graph transformation tools –terminology for benchmarking –quantitative comparison of tools Complete solution (ongoing research) (vagy elején vagy végén): –Adaptation to general model transformation tools QVT which is going to be the standard for capturing/defining model transformation, uses a notation that is similar to graph transformation

40 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology III. (still cont.) Scenario Benchmark example Test set –Parametric and deterministic specification –Additionally fixed structure of instance models transformation sequences up to numerical parameters (e.g. number of processes)  calculation of paradigm features –Undefined tool feature (optimization strategy) settings

41 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology IV. Scenario Benchmark example Test set Test case –Additionally fixed tool feature (optimization strategy) –Still parametric paradigm feature (characteristics of the model, transformation)

42 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Terminology V. Scenario Benchmark example Test set Test case Run –Additionally fixed runtime parameters –Complete characterization –Reproducable measurements

43 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Graph transformation rules I. p1:Process r:Resource GiveRule n:next p2:Process rel:release p1:Process r:Resource n:next p2:Process t:token r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS LHSRHS Negative applicationc ondition LHS

44 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab Graph transformation rules II. p:Process r:Resource TakeRule t:token r:Resource req:requesthb:held_by LHSRHS p:Process RequestRule t:token r:Resource reqn:request p:Process t:token r:Resource req:request LHSRHS

45 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab As long as possible rule execution I. h1:held_by n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl1:release Standard graph rewriting steps applied as long as possible Decreasing number of matchings

46 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab As long as possible rule execution II. rl1:release n4:next n1:nextn2:next n3:next h2:held_by h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl2:release

47 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab As long as possible rule execution III. rl1:release n4:next n1:nextn2:next n3:next rl2:release h3:held_by h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl3:release

48 Budapest University of Technology and Economics Technical University of Darmstadt Real-Time Systems Lab As long as possible rule execution IV. n4:next n1:nextn2:next n3:next rl3:release h4:held_by p1:Processp3:Process p2:Process p4:Processr4:Resource r1:Resourcer2:Resource r3:Resource r:Resource p:Process r:Resource ReleaseRule hb:held_by reqn:request rel:release rn:Resource p:Process LHSRHS rl1:release rl2:release rl4:release