Executional Architecture

Slides:



Advertisements
Similar presentations
Writing Good Use Cases - Instructor Notes
Advertisements

1. XP 2 * The Web is a collection of files that reside on computers, called Web servers. * Web servers are connected to each other through the Internet.
Entity Relationship (E-R) Modeling
1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 1: The Database Environment
Distributed Systems Architectures
Chapter 7 System Models.
Requirements Engineering Process
Chapter 1 The Study of Body Function Image PowerPoint
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 1 Embedded Computing.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 3 CPUs.
By Rick Clements Software Testing 101 By Rick Clements
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
6 Copyright © 2005, Oracle. All rights reserved. Building Applications with Oracle JDeveloper 10g.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
FACTORING ax2 + bx + c Think “unfoil” Work down, Show all steps.
So far Binary numbers Logic gates Digital circuits process data using gates – Half and full adder Data storage – Electronic memory – Magnetic memory –
1 9 Moving to Design Lecture Analysis Objectives to Design Objectives Figure 9-2.
Communicating over the Network
Week 2 The Object-Oriented Approach to Requirements
Object-Oriented Software Engineering Visual OO Analysis and Design
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
© 2011 TIBCO Software Inc. All Rights Reserved. Confidential and Proprietary. Towards a Model-Based Characterization of Data and Services Integration Paul.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 The OSI Model and the TCP/IP.
Chapter 6 Data Design.
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
Use Case Diagrams.
1 Use or disclosure of data contained on this sheet is subject to the restriction on the title page of this proposal or quotation. An Introduction to Data.
IP Multicast Information management 2 Groep T Leuven – Information department 2/14 Agenda •Why IP Multicast ? •Multicast fundamentals •Intradomain.
VOORBLAD.
1 Breadth First Search s s Undiscovered Discovered Finished Queue: s Top of queue 2 1 Shortest path from s.
The World Wide Web. 2 The Web is an infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that.
IONA Technologies Position Paper Constraints and Capabilities for Web Services
the Entity-Relationship (ER) Model
OPERATING SYSTEM SUPPORT
Database System Concepts and Architecture
© 2012 National Heart Foundation of Australia. Slide 2.
Chapter 9: The Client/Server Database Environment
Lecture plan Outline of DB design process Entity-relationship model
Lecture 6: Software Design (Part I)
Implementation Architecture
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Fall 2011 Prof. Jennifer Welch CSCE 668 Set 14: Simulations 1.
25 seconds left…...
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
We will resume in: 25 Minutes.
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
Database Administration
Chapter 15 Multithreading, Networks, and Client/Server Programming
PSSA Preparation.
Chapter 11 Component-Level Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Modeling Main issues: What do we want to build How do we write this down.
From Model-based to Model-driven Design of User Interfaces.
© Copyright 2011 John Wiley & Sons, Inc.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Presentation transcript:

Executional Architecture Lecture 16-19

Conceptual vs execution Architecture Execution Architecture Domain-level responsibilities Concurrent activity Component Flow of information Invocation relationship Connector

Focuses on the system runtime structure, as: Execution view Focuses on the system runtime structure, as: Hardware elements, subsystems, processes and threads

Execution view Suited for examining quality attributes, most-notably runtime attributes e.g. performance, scalability, etc Comprised of “components and connectors”

Components in execution architecture Concurrent components are designed by: “abstraction created by execution of a software program” If the system is a single-computer, single-process, single-thread system then the execution architecture is very simple; having just one runtime entity.

Components in execution architecture Thus, execution architecture is needed for: Distributed systems, Network-based systems Concurrent systems Multi-processor systems (multi-core) Multi-threaded systems - GUI systems

Components in execution architecture Hardware: runtime resources, Shared memory… e.t.c Concurrent subsystems: typically has a dedicated computer that runs it. Processes: runs on a single computer and has its own memory space. Threads: executes concurrently with other threads within the memory space of a parent process.

Connectors in execution architecture Connectors indicate that one component calls another The arrow depicts the call direction The arrowhead points from the calling component to the called component Three different types of arrows for three different calling scenarios: Synchronous Asynchronous Callback

Connectors in execution architecture Synchronous communication: the calling components waits for a response of the called component Asynchronous communication: the calling component does not wait for a response Callback: The calling component receives a response asynchronously by setting a means by which the called component can send response later

Communication Arrows indicate an invocation relationship;

Execution stereotypes Similarly to conceptual components execution components can belong to stereotypes We will use three different stereotypes Each stereotype has a particular clearly defined semantics In execution architecture this semantics describes the kind of concurrent activity

Activity stereotypes How is concurrent activity initiated? By user action By an active thread or threads of control In response to a request

Execution stereotypes User-initiated: “the component performs action because of user input” This components are always user-interfaces. E.g. an event thread that listens to user-input events, enhances responsiveness of user-interface, and in general usability

Execution stereotypes Active: “the component generates activity internally” Typical for real-time portions of the system For example: Components loop continuously or wake up periodically A crawler in a search engine might be an active component Whenever there is a new page it generates activity and invokes parser, analyzer, indexer, ...

Execution stereotypes Services: “the component waits for requests of other components and generates responses for such requests” Typically performs a complex task and has clearly defined protocol for communication with other components E.g. database, web, file servers

Concurrent subsystems view Contains only concurrent subsystems The highest-level execution view of the system A u d i o C a p t r e / P l y b c k S n L U I O A simple audio processing system

Execution Architecture Design In Execution Architecture Design, we design a number of different models: Some of them will include physical components: i.e. hardware Each model is a model at a specific level of Detail: Less details: concurrent subsystems, processes More details: threads

Concurrent subsystems model Top-level execution model: To get an overview of the running system. Detail-level execution model: Overview of the running system and its concurrent subsystems. Subsystems can be quite complex and have many processes and/or threads. However, a concurrent subsystem is not something that is clearly defined in many cases.

Concurrent subsystems model A process that has a high degree of internal concurrency (threads) should be treated as a concurrent subsystem. E.g. a server is typically a single process but might create threads to handle client requests.

Concurrent subsystems model A concurrent subsystem is always long-lived: Created when the systems is started Operates throughout the system lifetime Closed when the system is shutdown

Process model Basically, you examine each concurrent subsystem for processes. Restricting a concurrency model to processes depicts the execution structure. You do not go into details on external system. Typically, such models will be only slightly more detailed than concurrent subsystem mode.

Process model (2) Process model of a TCP/IP server

MPS Execution Architecture Start with the big picture: concurrent systems: MPS is a Web application What concurrent subsystems will we have: A Web browser and a Web server: The application logic is on the server side We need a Web server which can run applications Thus, the Web server is actually a Web application server

MPS Execution architecture

Detailed execution model Includes process‘s threads, but; Threads do not have their own memory space Nor they have their own copy of the code in memory The code is loaded only once by their parent process The memory is typically shared by the threads We need to take care about thread synchronization

MPS Detailed Execution Architecture Example: Web server with a database server A content management system(CMS) with content stored in a database What happens when a field is updated in the database? Note, Database server is a separate process

MPS Detailed Execution Architecture

Quality attributes Many quality attributes are addressed by the execution architecture: For example: Usability: in GUIs is addressed by a special event thread Highly Reliability: component needs a separate execution component Security: typically requires a separate execution component

Execution behavior We will use-case maps to model behavior Actually we need only to verify that execution architecture supports the desired behavior. We can use the same use-case maps from the conceptual architecture.

Execution arch. summary What you need to submit: Execution diagram showing where conceptual components reside. Execution diagram using stereotypes. The same use-case maps from conceptual architecture as a verification of execution architecture. If needed some textual explanation to backup your decisions.