Specification, Partitioning, and Composition Techniques for Web Applications in the Context of Event-B Abdolbaghi Rezazadeh Michael Butler University of.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Chapter 13 Review Questions
8.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Technical Architectures
Software Architecture Design Instructor: Dr. Jerry Gao.
Lecture 23: Software Architectures
Ch 12 Distributed Systems Architectures
1 CS 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007.
Chapter 9: Moving to Design
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Lesson-21Process Modeling Define systems modeling and differentiate between logical and physical system models. Define process modeling and explain its.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
Web application architecture
Structured Event Refinement Michael Butler University of Southampton users.ecs.soton.ac.uk/mjb.
The Design Discipline.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
INTELLIGENT AUTOMATION INC. Extending Rational Rose to support MAS design in UML Intelligent Automation Inc. 2 Research Place, Suite 202 Rockville, MD.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
DEVS Namespace for Interoperable DEVS/SOA
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Nicolas Teirlinckx Made for Software Engineering Groep 1 (2009 – 2010)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Lecture 18: Object-Oriented Design
MDD approach for the Design of Context-Aware Applications.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
J2EE Platform Overview (Application Architecture)
Software architecture
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Service-centric Software Engineering
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Software Architecture
Chapter 6 – Architectural Design
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Applying Use Cases (Chapters 25,26)
Design Yaodong Bi.
Presentation transcript:

Specification, Partitioning, and Composition Techniques for Web Applications in the Context of Event-B Abdolbaghi Rezazadeh Michael Butler University of Southampton

Overview Event-B supports abstraction of services to business level Refinement/decomposition to distributed architecture – refinement introduces architecture Can we have structure in the abstraction and how is this structure related to implementation structure?

End-to-end service contract How it is implemented: Middleware Partner

Abstract spec of balance transfer TransferOk = when bal(p1)  a then bal(p1) := bal(p1)-a || bal(p2) := bal(p2)+a end LoseValue = when bal(p1)  a then bal(p1) := bal(p1)-a || lost(p1) := lost(p1)+a end Recover = when lost(p1)  a then bal(p1) := bal(p1)+a || lost(p1) := lost(p1)-a end

Protocol steps (Mondex) decrease balance p1 increase balance p2 epr epv epa end req val ack Source purse Target purse Also: a transaction can be aborted at any point Abort caused by timeout or by card removal

Substantial Requirements Workshop on Formal Methods for SOA & Internet of the Future Slide 6 Functional requirements - clients - users - other stakeholders Quality considerations - performance - scalability - reusability - maintainability Experience with - existing architecture - patterns - project management Technical aspects - operating system - middleware - legacy-systems Web Applications Factors influencing the development of Web Applications

Event-B State-transition model (like ASM, B, VDM, Z) – set theory as mathematical language Refinement – state reification – one-to-many event refinement – new events (stuttering steps) Proof method – Refinement proof obligations (POs) generated from models – Automated and interactive provers for POs – Proof feeds back into modelling

Rodin Tool for Event-B Extension of Eclipse IDE (Java based) Open source – managed on sourceforge Repository of modelling elements – Abstract syntax as Java objects, XML files – Allow for easy extension of abstract syntax Rodin Eclipse Builder coordinates: – Well-formedness + type checker – PO generator – Proof manager – Propagation of changes Collection of additional plug-ins – ProB, UML-B, AnimB, ReqMan

Need for more structuring in Event-B Technical Aspects – To comply with layering architecture of Web applications – To deal with issues like separation of concerns e.g., specify security and business logic separately Support for Team-based Development and reusability – Delegation of subsystems development tasks to sub- groups – Supporting reusability and pattern-based development Workshop on Formal Methods for SOA & Internet of the Future Slide 9

Web Application Structure Multi-layer Architecture to achieve: – High level of modularity – Separation of concerns – Effective way to handle complexity Workshop on Formal Methods for SOA & Internet of the Future Slide 10 User Tier (standard Bowser ) Web Server Application Server Back-end or Database Systems

Extending current methodology Identifying reoccurring composition patterns – These patterns can be domain-specific like Web Applications Classifying recognised patterns – This may involve some informal representation Formally model these patterns Providing some examples how these patterns can be used – Both in non-formal and formal Event-B We outline some of these composition patterns Workshop on Formal Methods for SOA & Internet of the Future Slide 11

Devising composition mechanism in Event- B Composition Patterns – Basic Parallel Composition Mechanism (Pattern 1) Workshop on Formal Methods for SOA & Internet of the Future Slide 12 Machine M ev M ev N Machine N

Parallel composition with value- passing (Pattern 2) One output event and one input event Workshop on Formal Methods for SOA & Internet of the Future Slide 13 Machine M ev M ev N Machine N x!x!

Broadcasting composition (Pattern 3) A single output event which synchronises with many input events Workshop on Formal Methods for SOA & Internet of the Future Slide 14 Machine M ev M ev1 N Machine N x!x! ev2 N evj N ALL :

Alternation patterns Workshop on Formal Methods for SOA & Internet of the Future Slide 15 One output event with one of many input events (Pattern 4) Machine M ev M ev1 N Machine N x!x! ev2 N evj N OR : Machine M ev M evj N Machine N x!x! ev2 N ev1 N OR : One of many output events with one input event (Pattern 5)

Formal presentation of Choice composition (Pattern 1) Workshop on Formal Methods for SOA & Internet of the Future Slide 16

Preserving Composition Structure Workshop on Formal Methods for SOA & Internet of the Future Slide 17 M ev M ev N N x!x! M’ ev M ev N N’ x!x! x?x? Communication layer Refined to

Transverse Composition Structure Workshop on Formal Methods for SOA & Internet of the Future Slide 18 M ev M ev N N M1+N1M2+N2 Communication layer Refined to

Login Scenario From the Auction System Workshop on Formal Methods for SOA & Internet of the Future Slide 19 Parameters sid : Session ID uu : User Name pp : Password An example of Choice Composition (Pattern 3)

Representation of Login Scenario Workshop on Formal Methods for SOA & Internet of the Future Slide 20 Login scenario Application Layer Login scenario Web Layer

Conclusions We identified some composition patterns and formally modelled them An example for using composition pattern has been provided Using these composition patterns can pave the way for more reuse Formal Composition patterns should be investigated in more depth Workshop on Formal Methods for SOA & Internet of the Future Slide 21