Beanbag: Operation-based Synchronization with Intra-Relation Support Yingfei Xiong Ph.D. Student University of Tokyo.

Slides:



Advertisements
Similar presentations
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification.
Advertisements

Design Issues for General-Purpose Adaptive Hypermedia Systems Hongjing Wu, Erik de Kort, Paul De Bra Eindhoven University of Technology The Netherlands.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
1 Constraints, Triggers and Active Databases Chapter 9.
Building Secure Distributed Systems The CIF model : Component Information Flow Lilia Sfaxi DCS Days - 26/03/2009.
Copyright Irwin/McGraw-Hill Data Modeling Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Formal Specification of Topological Relations Erika Asnina, Janis Osis and Asnate Jansone Riga Technical University The 10th International Baltic Conference.
Verification/Simulati on –GUI for simulation and formal verification –Simulator: Exploration of dynamic behavior Checking.
Responding to Policies at Runtime in TrustBuilder Bryan Smith, Kent E. Seamons, and Michael D. Jones Computer Science Department Brigham Young University.
Instant Bidirectional QVT Transformation for Runtime Models.
JBoss Seam: Contextual Components Jason Bechtel
Cse321, Programming Languages and Compilers 1 6/19/2015 Lecture #18, March 14, 2007 Syntax directed translations, Meanings of programs, Rules for writing.
Hash History: A Method for Reconciling Mutual Inconsistency in Optimistic Replication Brent ByungHoon Kang, Robert Wilensky and John Kubiatowicz CS Division,
SEI/CBS Initiative Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1999.
Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET
Version # Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1999 by Carnegie.
University of Pennsylvania 9/28/00CSE 3801 Concurrent Programming (Critical Regions, Monitors, and Threads) CSE 380 Lecture Note 6 Insup Lee.
Subclasses and Subtypes CMPS Subclasses and Subtypes A class is a subclass if it has been built using inheritance. ▫ It says nothing about the meaning.
Architecture, Implementation, and Testing Architecture and Implementation Prescriptive architecture vs. descriptive architecture Prescriptive architecture:
Chapter 14 & 15 Conceptual & Logical Database Design Methodology
Midterm 1 Concepts Relational Algebra (DB4) SQL Querying and updating (DB5) Constraints and Triggers (DB11) Unified Modeling Language (DB9) Relational.
Data Persistence and Object-Relational Mapping Slides by James Brucker, used with his permission 1.
Programming Languages and Paradigms Object-Oriented Programming.
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Information storage: Introduction of database 10/7/2004 Xiangming Mu.
DBMS Lecture 9  Object Database Management Group –12 Rules for an OODBMS –Components of the ODMG standard  OODBMS Object Model Schema  OO Data Model.
Supporting Automatic Model Inconsistency Fixing Yingfei Xiong University of Tokyo, Japan Zhenjiang HuNational Institute of Informatics, Japan Haiyan ZhaoPeking.
I Copyright © 2004, Oracle. All rights reserved. Introduction.
Design and Implementation of a Module to Synchronize Databases Amit Hingher Reviewers: Prof. Dr. rer. nat. habil. Andreas Heuer Prof. Dr.-Ing. Hartmut.
© 2010 HCMUNS. NII-Internship program proposal: Evolution of modeling languages and models Submitted by: BUI TAN LOC NII Supervisor: Professor ZHENJIANG.
Chapter 9 Integrity. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.9-2 Topics in this Chapter Predicates and Propositions Internal vs.
A Template-Based Model Transformation Approach Using A Simplified Hierarchical Metamodel Ph.D Dissertation Hongming Liu DePaul University.
Intro-Part 1 Introduction to Database Management: Ch 1 & 2.
Chapter 8 Script-free pages. Problem with scripting in JSP When you use scripting (declaration, scriplet, expressions) in your JSP, you actually put Java.
TM 1 Dr. Chen, Business Database Systems Data Modeling Professor Chen School of Business Administration Gonzaga University Spokane, WA
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Object-Oriented Analysis and Design An Introduction.
1cs Intersection of Concurrent Accesses A fundamental property of Web sites: Concurrent accesses by multiple users Concurrent accesses intersect.
SAML 2.0: Federation Models, Use-Cases and Standards Roadmap
Beanbag: A Framework for On- Site Synchronization Yingfei Xiong (speaker), University of Tokyo Zhenjiang Hu, National Institute of Informatics / University.
Transformation Patterns Al, Jean, Jeff, Kerry, Krzysztof, William, ??
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
DataBase Management System What is DBMS Purpose of DBMS Data Abstraction Data Definition Language Data Manipulation Language Data Models Data Keys Relationships.
Supporting Parallel Updates with Bidirectional Model Transformations Yingfei Xiong and Masato Takeichi University of Tokyo, Japan Song Hui Peking University,
Beanbag: Facilitating Model Inconsistency Fixing Yingfei Xiong Ph.D. Student Advisor: Zhenjiang Hu and Masato Takeichi University of Tokyo 1.
IFS310: Module 6 3/1/2007 Data Modeling and Entity-Relationship Diagrams.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
Lab 5 CPIT 250 System Analysis and Design.
A Linguistic Approach to Model Synchronization Yingfei Xiong Ph.D., University of Tokyo Advisors: Zhenjiang Hu and Masato Takeichi 1.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Enterprise JavaBeans 3.0. What is EJB 3.0 -Reusable server-side component framework-technology -Designed to support building demanding enterprise – level.
9.2 Compound Sentences Standard 5.0, 24.0 Standard 5.0, 24.0 Two Key Terms Two Key Terms.
The relational model1 The relational model Mathematical basis for relational databases.
Chapter 16 Maintaining Information Systems. Objectives:  Explain and contrast four types of system maintenance.  Describe factors affecting maintenance.
MySQL Tutorial. Databases A database is a container that groups together a series of tables within a single structure Each database can contain 1 or more.
More SQL: Complex Queries, Triggers, Views, and Schema Modification
Business System Development
Good for DJ over Java Extending traversals for collections (b..*)
School of Business Administration
FUNDAMENTALS OF JAVA.
Enterprise Java Bean. Overview of EJB View of EJB Conversation Roles in EJB, Types of Enterprise Beans Lifecycle of Beans Developing Applications using.
Beanbag : Support Synchronization in Software Engineering Applications
Towards Automatic Model Synchronization from Model Transformation
Evaluating Compuware OptimalJ as an MDA tool
Synchronizing Software Engineering Artifacts
Chapter 7: Data Flow Diagram Structuring System Process Requirements
Programming Languages
Presentation transcript:

Beanbag: Operation-based Synchronization with Intra-Relation Support Yingfei Xiong Ph.D. Student University of Tokyo

Example: An EJB Modeling Application (Enterprise JavaBeans)

Inter-Relations on Data Equal

Inter-Relations on Data User

Intra-relations on data Dependent Equal

Intra-relations on data SignModule

Intra-relation and bidirectional transformation AX Y Related Containtment bidirectional transformation MOF B Related How many roundtrips are needed is unknown.

Intra-Relations Call for Operation- based Synchronization SignOn SignModule ?

Intra-Relations Call for Operation- based Synchronization SignModule

Intra-Relations Have Mutual Effect with Inter-Relations

Intra-Relations Has Mutual Effect with Inter-Relations SignModule

Intra-Relations Has Mutual Effect with Inter-Relations Equal

Intra-Relations often Lead to Multiple Choices

false

Our Contribution: Beanbag Beanbag( お手玉,沙包 ) is also a traditional Asian game for keeping several beanbags consistent The picture is obtained from Beanbag is a new language for operation-based synchronization with intra-relations.

An Overview of Beanbag Application Data Synchronizer Updates Users Beanbag Program Compile

Features of Beanbag Application Data Synchronizer Updates Users Beanbag Program Compile Intra-relations and inter- relations are captured in a unified way Allow fine control over synchronization behavior Operation-based Synchronization with no propagation direction imposed

Beanbag Program for the EJB main(ejbs, modules, entitybeans) { containmentRefs (ejbs, modules); for [ejb, entitybean] in [ejbs, entitybeans] { persistent(ejb, entitybean, modules) | nonPersistent(ejb, entitybean) | {ejb = null; entitybean = null} }

Beanbag Program for the EJB persistent(ejb, entitybean, modules) { var moduleRef, moduleName, module; ejb."Persistent" = true; entitybean."EJBName" = ejb."Name"; moduleRef = ejb."Module"; !modules.moduleRef = module; entitybean."ModuleName" = module.”Name”; } nonPersistent(ejb, entitybean){ ejb."Persistent" = false; entitybean = null; }

Describing Updates Assign a unique id for each object

Describing Updates Describing attribute modification User 2 ejbs: {2->{“Name”->!”User”}} modules: void entityBeans: void

Describing Updates Describing deletion 2 ejbs: void modules: {4->!null} entityBeans: void

Describing Updates Describing Insertion 2 AccessRight : EJB Persistent = true 7 7 ejbs: {7->{“Name”->!”AccessRight”,“Persistent”->!true}} modules: void entityBeans: void

An Update Propagation of EJB Tool User Synchronizer ejbs: {2->{“Name”->!”User”}} modules: void entityBeans: void ejbs: {2->{“Name”->!”User”}} modules: void entityBeans: {5->{“Name”->!”User”}} EJB Program Compile User

Properties of Synchronization Adapted from our previous work on state- based synchronization [Xiong07]: – Stability – Preservation – Consistency Can be used in bidirectional situation and multidirectional situation sync : Update n -> Update n

Stability sync(void,…,void)=(void,…,void) If there is no update, the synchronizer produce no update.

Preservation sync(u 1 …u n )=(u’ 1,…,u’ n )=> ∀ i. u i ⊑ u’ i We cannot overwrite user updates PersonEJB UserEJB

Consistency (Propagation) sync(u 1 …u n )=(u’ 1,…,u’ n )=>consistent(u’ 1 (d 1 ), …,u’ n (d n )) After updating, the data should satisfy the consistency relation PersonEJB Equal

Review: Multiple Choices

false

Beanbag Program for the EJB main(ejbs, modules, entitybeans) { containmentRefs (ejbs, modules); for [ejb, entitybean] in [ejbs, entitybeans] { persistent(ejb, entitybean, modules) | nonPersistent(ejb, entitybean) | {ejb = null; entitybean = null} } main(ejbs, modules, entitybeans) { containmentRefs (ejbs, modules); for [ejb, entitybean] in [ejbs, entitybeans] { persistent(ejb, entitybean, modules) | {ejb = null; entitybean = null} | nonPersistent(ejb, entitybean) }

How we compile a Beanbag program Consider an example: { var c; c=a.”Name”; c=b.”Name”; } Basic relations (like a=b, a.”name”=b) Primitive synchronizers Gluing constructs (like conjunction “;”) gluing their inner synchronizers into a bigger synchronizer

c=a.“Name” a: {“Persistent”->!true} c: !”X” a: {“Persistent”->!true, “Name”->!”X”} c: !”X”

c=a.“Name” a: {“Name”->!”Y”} c: !”X” Failure!

Conjunction {var c; c=a.”name”; c=b.”name”} a: void b: {“name”->!”x”} a: {“name”->!”x”} b: {“name”->!”x”} c=b.”name” b: {“name”->!”x”} c: void b: {“name”->!”x”} c: !”x” c=a.”name” a: void c: !x a: {“name”->!”x”} c: !”x”

Disjunction {a=“x” | a=“y”} a: !”y” a=“x” a: !”y” Failure! a=“y” a: !”y”

The “for” Statement for [a, b] in [dictA, dictB] {a = b} dictA: {1->!”x”} dictB: {2->!”y”} dictA: {1->!”x”, 2->!”y”} dictB: {1->!”x”, 2->!”y”} a=b a: !”x” b: void a: !”x” b: !”x” a=b a: void b: !”y” a: !”y” b: !”y” for key 1 for key 2

Implementation We have implemented Beanbag in Java We have applied Beanbag to two case studies The implementation is published under MIT license URL:

Experiments Beanbag vs medini QVT Beanbag attribute change Beanbag deletion Beanbag insertion QVT insertion QVT deletion QVT attribute change

Conclusion We propose a new language, Beanbag, to support synchronization with intra-relations Beanbag captures inter-relations and intra- relations in a unified way Beanbag supports operation-based synchronization with no propagation direction imposed Beanbag allows fine control over synchronization behavior