Formal Service-Oriented Development of Fault Tolerant Communicating Systems Linas Laibinis, Elena Troubitsyna, Johan Lilius, Qaisar Malik (Åbo Akademi)

Slides:



Advertisements
Similar presentations
Synthesis of Protocol Converter Using Timed Petri-Nets Anh Dang Balaji Krishnamoorthy Manoj Iyer Presented by:
Advertisements

Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Lecture 6: Software Design (Part I)
Presentation by Prabhjot Singh
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
S Y S T E M S E N G I N E E R I N G.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Software Engineering COMP 201
© 2005 Prentice Hall7-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
Lecture 13 Revision IMS Systems Analysis and Design.
Course Instructor: Aisha Azeem
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Modeling Process CSCE 668Set 14: Simulations 2 May be several algorithms (processes) runs on each processor to simulate the desired communication system.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
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.
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 6 Architectural Design.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
1 Introduction to Software Engineering Lecture 1.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Industry Day Paris Rodin Methodology for Developing Fault Tolerant Systems Elena Troubitsyna Åbo Akademi University, Turku, Finland.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Design Concepts By Deepika Chaudhary.
Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
A Mediated Approach towards Web Service Choreography Michael Stollberg, Dumitru Roman, Juan Miguel Gomez DERI – Digital Enterprise Research Institute
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Motivation FACE architecture encourages modularity of components on data boundaries Transport Services Segment interface is centered on sending and receiving.
CS223: Software Engineering
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
1 Architecture and Behavioral Model for Future Cognitive Heterogeneous Networks Advisor: Wei-Yeh Chen Student: Long-Chong Hung G. Chen, Y. Zhang, M. Song,
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 14b: Software Testing Techniques Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Basic Characteristics of Object-Oriented Systems
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Week#3 Software Quality Engineering.
CompSci 280 S Introduction to Software Development
Chapter 1: Introduction to Systems Analysis and Design
Architecting Web Services
Architecting Web Services
IEEE Std 1074: Standard for Software Lifecycle
Web Ontology Language for Service (OWL-S)
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Formal Service-Oriented Development of Fault Tolerant Communicating Systems Linas Laibinis, Elena Troubitsyna, Johan Lilius, Qaisar Malik (Åbo Akademi) Sari Leppänen (NOKIA)

Motivation Telecommunication systems – distributed software-intensive systems providing variety of services Software development of such systems is inherently complex and error-prone Communication failures – intrinsic part of the system behaviour. Hence fault tolerance mechanisms should be integrated into the system design

Approach Formalisation of UML2-based service-oriented methodology Lyra developed in the Nokia Research Center In Lyra the system behaviour is modularised and organised into hierarhical layers Distributed network architecture is derived from functional system requirements via a number of model transformations

Lyra Development Phases Lyra consists of 4 phases Service Specification – services provided by the system to the external users Service Decomposition – logical architecture of the system-level services Service Distribution – service components are distributed over the given network Service Implementation – low-level implementa- tion details are added and platform-specific code is generated

Formalisation of Lyra The B Method – the development methodology based on stepwise refinement We formalise Lyra by proposing a set of formal specification and refinement patterns reflecting essential models and transforma- tions of Lyra Lyra development steps are validated by the corresponding B refinement steps

Example: Positioning System The Third Generation Partnership Project (3GPP) provides a positioning service for calculating the physical location of user equipment (UE) in a UMTS network Positioning is based on determining the geographical position of the UE by measuring radio signals Communication between all network elements is done by using predefined signalling protocols

System Architecture

Services and Interfaces In terms of its services and interfaces, the system consists of several layers representing it at different levels of detail The top layer describes system’s interaction with an external user: what services the system provides, what signals it sends and receives

Service Specification

Formal Development We single out a generic concept of a communicating service component and propose patterns for specifying and refining it In the refinement process a service component is decomposed into service components of smaller grannularity according to the same pattern

Formal Development (cont.) ACC = ACM + ACAM The basic idea: the communicating components are created according to a certain pattern -- Abstract Communicating Component ACC Component consists of a “kernel”, i.e., the provided functionality --Abstract Calculating Machine ACAM “communication wrapper”, i.e., the communication channels via which data are supplied to and consumed from the component – Abstract Communicating Machine ACM

Behaviour of Abstract Communicating Component input output calculate inp_chan out_chan

Layer 2 The second layer describes how the positioning service is decomposed into several subservices of smaller granularity. Each of subservices is provided by an external service component responsible for its execution The positioning service consists of four subservices: DB Enquiry, UE Enquiry, LMU Measurement, and Algorithm Invocation

Service Decomposition

Service Decomposition (B Model)

Layer 3 The third layer describes how service components are distributed over the given network Service component responsible for the positioning service is distributed between RNC and SAS network elements ServiceDirector is also decomposed into two parts – RNC_ServiceDirector and SAS_ServiceDirector

Service Distribution

Service Distribution (B model)

Service Distribution (B Model) Service Distribution phase of Lyra corresponds to one or several B refinements Refinement steps introduce separate B components modelling external service components All new B components are specified according to the same (ACC) pattern

Fault Tolerance External service components can fail – unreachable, too busy, internal failure etc During refinement steps we incorporate simple fault tolerance mechanisms into service directors After analysing an error message and other data received from a service component, a director ”decides” what recovery action is possible

Fault Tolerance (cont.) Some simple recovery mechanisms: ’reasking’ – sending additional requests to the same component redirecting the request to an alternative service component ’holding on’ a service...

Failure of Positioning Service If any of subservices unrecoverably fails, the whole positioning service is considered as failed. ServiceDirector then sends the corresponding error message to the user

Conclusions We propose an approach to formal modelling of communicating distributed systems We define specification and refinement patterns that can be used to automate the development process Simple fault tolerance mechanisms are incorporated into the system design Future work: addressing concurrency, verification of temporal properties of communication protocols etc