Evaluating the Performance. of Software Architectures



Similar documents
Layered Dependability Modeling of an Air Traffic Control System

Envox Call Information Manager

Windows Web Based VPN Connectivity Details & Instructions

Building a Scalable Numbering Plan

Integrating Performance Characterization with Software Development

EAI-Low Level Design Document

Microsoft Dynamics CRM 2013/2015 Event Pipeline

BIT601 SAP Workflow Definition and Use of Customer-Specific Workflows

Enterprise Voice and Online Services with Microsoft Lync Server 2013

Application Notes for G-Tek SIP Telephone MT-102H version 1510X i with Avaya Software Communication System Release 3.0 Issue 1.0.

Genius in Salesforce.com Pre- Installation Setup

Configuring the Sonus SBC 2000 with Cisco Unified Call Manager 10.5 for Verizon Deployment

Implementing SIP and H.323 Signalling as Web Services

Grandstream Networks, Inc.

>

How to Implement a SAP HANA Database Procedure and consume it from an ABAP Program Step-by-Step Tutorial

Structural Models for Specifying Telephone Systems

Microsoft Dynamics CRM Event Pipeline

A COMPONENT BASED METHODOLOGY FOR WEB APPLICATION DEVELOPMENT USING RUBY ON RAILS. Presentation 1 13 th July 2009 by Brett Nisbett

Design Document. Offline Charging Server (Offline CS ) Version i -

Linux Web Based VPN Connectivity Details and Instructions

Table of Contents. PBX Integration and API Guide - SmileTiger TeleMeeting Server 2011

Copyright 2013 EMC Corporation. All Rights Reserved.

How to set fax using Dinstar s gateway and 3CX

Layered Queuing networks for simulating Enterprise Resource Planning systems

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

Transactionality and Fault Handling in WebSphere Process Server Web Service Invocations. version Feb 2011

Remote I/O Network Determinism

EXPLOITING SIMILARITIES BETWEEN SIP AND RAS: THE ROLE OF THE RAS PROVIDER IN INTERNET TELEPHONY. Nick Marly, Dominique Chantrain, Jurgen Hofkens

Configuration Notes 0217

Grandstream Networks, Inc. UCM6510 Basic Configuration Guide

Enterprise Architecture For Next Generation Telecommunication Service Providers CONTACT INFORMATION:

Building a protocol validator for Business to Business Communications. Abstract

Course 10978A Introduction to Azure for Developers

Audio Feature Interactions in Voice-over-IP

A Smart Telephone Answering Machine with Voice Message Forwarding Capability

Avaya IP Office Platform Web Self Administration

ANPI VIP Call Center. A Hosted Call Center Solution. User Guide

Two-Stage Forking for SIP-based VoIP Services

Data Communication Networks and Converged Networks

(BA122) Software Engineer s Workshop (SEW)

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Transform. Training Courses A Bottomline Guide

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

Egnyte for Salesforce v2.1 Administrator s Guide

Configuration Manager

Sequence Diagram Tutorial. From: UML Distilled, Third Edition, Chapter 4 M. Fowler

InSciTek Microsystems 635 Cross Keys Park Fairport, NY Setting up Your Phones

Microsoft SQL Server for Oracle DBAs Course 40045; 4 Days, Instructor-led

Introduction. What is an Operating System?

// table of contents //

MiVoice Integration for Salesforce

Three Network Technologies

Configuration BCP Skype for Business

8913, Applications in Microsoft Dynamics CRM 4.0

wpml manual A guide for site owners and translators.

MODELLING OF INTELLIGENCE IN INTERNET TELEPHONE SYSTEM

Special-Purpose Connections

ActiveVOS Server Architecture. March 2009

Grandstream Networks, Inc. How to Integrate UCM6100 with Microsoft Lync Server

Dialogic MSP 1010 Multi-Services Platform Enables Non-Intrusive SS7 Signaling Monitoring

ARIS Design Platform Getting Started with BPM

Understanding the realities of T.38 compliance

KLAPER: an Intermediate Language for Model-Driven Predictive Analysis of Performance and Reliability

SAP Solution Manager - Content Transfer This document provides information on architectural and design questions, such as which SAP Solution Manager

Data Integration and ETL with Oracle Warehouse Builder: Part 1

D83167 Oracle Data Integrator 12c: Integration and Administration

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Skynax. Mobility Management System. System Manual

IP PBX. SD Card Slot. FXO Ports. PBX WAN port. FXO Ports LED, RED means online

Software Life-Cycle Management

Home Phone Call Forward Guide

Time Synchronization of Computer in secure manner while using Teleclock & NTP Services

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series

Voice over IP Probe! for Network Operators and! Internet Service Providers

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Performance Evaluation of Component-based Software Systems: A Survey

Software Engineering 4C03 VoIP: The Next Telecommunication Frontier

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture

Sequential Performance Analysis with Callgrind and KCachegrind

Best Practices for Implementing Autodesk Vault

Using Multipathing Technology to Achieve a High Availability Solution

Communications Software Engineering Design Model

TEST AUTOMATION FRAMEWORK

Transcription:

Evaluating the Performance of Software Architectures D. Petriu (dorin@sce.carleton.ca) C. M. Woodside (cmw@sce.carleton.ca)

1. Overview Introduction UCM and LQN Correspondences Between UCMs and LQNs POTS example Conclusion

2. Introduction performance analysis should be done early on in the design performance analysis is an example of architecture evaluation Software Architecture Analysis Method (SAAM) makes use of scenarios as a means of evaluating software architectures Use Case Maps (UCMs) are used to illustrate the scenarios and the architecture Layered Queueing Networks (LQNs) are used to evaluate the performance

3. UCM and LQN UCMs represent scenarios as paths with responsibilities that are executed along the way (may have AND or OR forks and joins) UCM paths traverse components that represent system entities The architecture of the system is represented by the combination of paths and the way they traverse components The UCM Navigator (UCMNav) is a tool used to edit and manipulate UCMs LQN models consist of tasks with associated entries and lists of activities The tasks are organized in conceptual layers interacting with each other through synchronous calls and returns, or asynchronous calls The LQN Solver (LQNS)is a tool that solves LQN models and returns performance parameters for the system Jlqndef is a tool that can be used to edit, solve (using LQNS), and display LQNs

4. Correspondences Between UCMs and LQNs Synchronous Call and Return Client C1 C2 C1 -> C2 Server S1 S2 S1 -> S2; S2 [SE1] A synchronous call is made whenever the UCM path crosses from one component to another and returns back to the original component

Asynchronous Call Client C1 C2 Server Client C1 -> C2 S1 S2 Server S1 -> S2 An asynchronous call is made whenever the UCM path crosses from one component to another and does not returns back to the original component Fig.4: LQN with an asynchronous call.

Multiple Calls Client C1 C2 C3 C1 -> C2; C2 -> C3 Server S1 [SE1]; S2 [SE2] S1 S2 Multiple synchronous calls are made whenever the UCM path crosses from one component to another, returns back to the original component, and repeats the same pattern

Forwarding Client C1 -> C2 C1 C2 Server1 Server2 S2 [S2E1] S1 S2 A call forwarding is made whenever the UCM path crosses from one component to another, and then to several others, before returning back to the original component. The first component makes a synchronous call, but the forwarding is asynchronous for the other components

AND Fork and Join Client C1 C6 C2 C3 C4 C5 Server1 Server2 S1 S2 Client C1 -> C2 & C3; C2 -> C4; C3 -> C5; C4 & C5 -> C6 Server1 S1 [S1E1] Server2 S2 [S2E1] An AND fork and join are put in the calling component. By making two synchronous calls after the AND fork, parallel services are triggered in the other components.

OR Fork and Join Client C1 C6 C2 C3 C4 C5 Server1 Server2 S1 S2 Client C1 -> (0.5) C2 + (0.5) C3; C2 -> C4; C3 -> C5; C4 + C5 -> C6 Server1 S1 [S1E1] Server2 S2 [S2E1] An OR fork and join are put in the calling component. By making two synchronous calls after the fork, competing alternate services are triggered in the other components.

Loop Client C1 C2 C1 -> C2 Server S1 S3 S1 -> 0.5 * S2, S3; S3 [SE1] S2 A loop is indicated by a special UCM loop construct that appears the same as an OR join followed immediately by an OR fork.

5. POTS Example based upon the POTS functionality described in the Feature Interaction (FI) Detection Contest as part of the 5th International Workshop on Feature Interactions. The components on the map are as follows: Orig - process corresponding to the call originator s (caller) telephone or telephone device Term - process corresponding to the call terminator s (callee) telephone or telephone device Switch - process corresponding to the service provider s telecommunications switch OS - process corresponding to the service provider s operations system server

POTS Root Map OS IN1 billing OUT1 BillingDone Switch pre-dial IN1 OUT1 post-dial OUT2 IN1 OUT1 Orig SetOrigBusy DialTone StopDialTone BusyTone Term Connected OrigOffHook OrigDialNumber Busy Connected

POTS Post-Dial Plug-in shows how POTS works after the number has been dialed and until the call has been established. OS Switch Connected Orig process-call IN1 OUT1 MakeCall OUT2 Busy Term StopRemoteRingRemoteRing Ring StopRing TermOffHook

POTS Process-Call Plug-in encompasses the essential call processing logic of the telephone system. OS Switch POTS IsTermBusy SetTermBusy TermIsAvailable TermIsBusy Orig Term

POTS LQN model

6. Conclusions We have demonstrated an effective way to bring performance analysis to the early software development stages. Our framework for transforming UCM designs into LQN performance models can be applied across a wide range projects. The next step in our project is to finish implementing a UCM2LQN tool that will automatically convert UCMs from the UCMNav into LQNs