2Conceptual vs execution ArchitectureExecutionArchitectureDomain-level responsibilitiesConcurrent activityComponentFlow of informationInvocation relationshipConnector
3Focuses on the system runtime structure, as: Execution viewFocuses on the system runtime structure, as:Hardware elements,subsystems,processes andthreads
4Execution viewSuited for examining quality attributes, most-notably runtime attributes e.g.performance,scalability, etcComprised of “components and connectors”
5Components 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.
6Components in execution architecture Thus, execution architecture is needed for:Distributed systems,Network-based systemsConcurrent systemsMulti-processor systems (multi-core)Multi-threaded systems - GUI systems
7Components in execution architecture Hardware:runtime resources, Shared memory… e.t.cConcurrent 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.
8Connectors in execution architecture Connectors indicate that one component calls anotherThe arrow depicts the call directionThe arrowhead points from the calling component to the called componentThree different types of arrows for three different calling scenarios:SynchronousAsynchronousCallback
9Connectors in execution architecture Synchronous communication:the calling components waits for a response of the called componentAsynchronous communication:the calling component does not wait for a responseCallback:The calling component receives a response asynchronously by setting a means by which the called component can send response later
10CommunicationArrows indicate an invocation relationship;
11Execution stereotypes Similarly to conceptual components execution components can belong to stereotypesWe will use three different stereotypesEach stereotype has a particular clearly defined semanticsIn execution architecture this semantics describes the kind of concurrent activity
12Activity stereotypes How is concurrent activity initiated? By user actionBy an active thread or threads of controlIn response to a request
13Execution 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
14Execution stereotypes Active:“the component generates activity internally”Typical for real-time portions of the systemFor example:Components loop continuously or wake up periodicallyA crawler in a search engine might be an active componentWhenever there is a new page it generates activity and invokes parser, analyzer, indexer, ...
15Execution 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 componentsE.g. database, web, file servers
16Concurrent subsystems view Contains only concurrent subsystemsThe highest-level execution view of the systemAudioCaptre/PlybckSnLUIOA simple audio processing system
17Execution Architecture Design In Execution Architecture Design, we design a number of different models:Some of them will include physical components:i.e. hardwareEach model is a model at a specific level of Detail:Less details: concurrent subsystems, processesMore details: threads
18Concurrent 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.
19Concurrent 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.
20Concurrent subsystems model A concurrent subsystem is always long-lived:Created when the systems is startedOperates throughout the system lifetimeClosed when the system is shutdown
21Process modelBasically, 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.
22Process model (2)Process model of a TCP/IP server
23MPS Execution Architecture Start with the big picture: concurrent systems:MPS is a Web applicationWhat concurrent subsystems will we have:A Web browser and a Web server:The application logic is on the server sideWe need a Web server which can run applicationsThus, the Web server is actually a Web application server
25Detailed execution model Includes process‘s threads, but;Threads do not have their own memory spaceNor they have their own copy of the code in memoryThe code is loaded only once by their parent processThe memory is typically shared by the threadsWe need to take care about thread synchronization
26MPS Detailed Execution Architecture Example: Web server with a database serverA content management system(CMS) with content stored in a databaseWhat happens when a field is updated in the database?Note, Database server is a separate process
28Quality attributesMany quality attributes are addressed by the execution architecture:For example:Usability: in GUIs is addressed by a special event threadHighly Reliability: component needs a separate execution componentSecurity: typically requires a separate execution component
29Execution 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.
30Execution 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.