1 / 22

Execution Architecture

Foundations of Software Architecture : Module 4. Execution Architecture. John Reekie University of Technology, Sydney. Contributors. Lian Loke, University of Technology, Sydney Rohan McAdam, Honeywell Inc. . Terms of Use: Creative Commons Attribution-ShareAlike 2. 5

sandra_john
Download Presentation

Execution Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Foundations of Software Architecture : Module 4 Execution Architecture John Reekie University of Technology, Sydney Contributors Lian Loke, University of Technology, Sydney Rohan McAdam, Honeywell Inc. Terms of Use: Creative Commons Attribution-ShareAlike 2.5 http://creativecommons.org/licenses/by-sa/2.5/

  2. An elephant with a view • Structure • Compute nodes • Processes • Subsystems • Activity • Behavior • Communication The execution architecture focuses on the “run-time” structures that exist in the system.

  3. Conceptual vs execution Conceptual Architecture Execution Architecture Domain-level responsibilities Unit of concurrent activity Component Invocation relationship Flow of information Connector View Single view Multiple views

  4. Component relationships This is a simplified and idealized (but useful) diagram.

  5. When you do it Inception Elaboration I Elaboration II Conceptual architecture Execution architecture Implementation architecture A close-up view of a possible Unified Process instance.

  6. What is concurrent activity? • When two actions occur “simultaneously”. • In actuality, the activities are time-sliced into a single processor. • Concurrency needs are often related to time: • Waiting for something • Working at the same time • When does the event occur?

  7. When to use concurrency Locate components on different processors ++ Scalability Waiting for a slow external device ++ Performance Independent development and compilation of components ++ Maintainability

  8. Processes and threads • A more “concrete” execution unit than concurrent subsystems • Map directly to operating system processes and threads Process Thread Own memory space Shared memory space Communicate by shared data structures Communicate via IPC, pipes, sockets Visible to most O/S utilities Not so visible

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

  10. Communication • Arrows indicate an invocation relationship • Synchronous • Asynchronous • Callback

  11. Concurrent subsystems • A large-grained unit of execution • Database • Web/application server • Real-time disk recorder • A concurrent subsystem may: • Exhibit significant (and complex) internal concurrency • Consist of a number of processes, which may be both static and dynamic

  12. Concurrent subsystems view • Contains only concurrent subsystems • The highest-level execution view of the system A simple audio processing system

  13. An example • A foley and sound-editing system

  14. Process view • Shows only processes • A process is the real unit of deployment • The process view shows exactly how the software system is allocated to hardware units • Operating system utilities “understand” processes • May be more palatable to traditional systems designers - ?

  15. Dynamic concurrency • Processes or threads are created and destroyed in response to operating conditions Dynamic concurrency is best illustrated by judicious use of use-case maps!

  16. To deploy v.t. • de·ploy (dĭ –ploi´)v.de·ployed,de·ploy·ing,de·ploys v.tr. • 1. • To position (troops) in readiness for combat, as along a front or line. • To bring (forces or material) into action. • To base (a weapons system) in the field. • 2.To distribute (persons or forces) systematically or strategically. • 3.To put into use or action: “Samuel Beckett's friends suspected that he was a genius, yet no one knew... how his abilities would be deployed” (Richard Ellmann). http://www.dictionary.com

  17. Shrink-wrap Buy a piece of software and install it on your own computer

  18. Client-managed Buy one or more pieces of software and install it on your own servers and clients

  19. Physical architecture • A simple audio-processing embedded system The physical architecture shows the key hardware elements of the system—as relevant to the software architecture

  20. Deployment view A deployment view shows the mapping of software elements onto hardware elements

  21. Deployment example • A concurrent subsystems view overlaid on a (simplified) physical view • Processes map to a single processing node • Subsystems map to one or more processing nodes • Replication to show scalability

  22. That’s all folks! • Questions or comments?

More Related