Software Architecture Styles Hany H Ammar Professor LANE
- Slides: 99
ﺑﺴﻢ ﺍﻟﻠﻪ ﺍﻟﺮﺣﻤﻦ ﺍﻟﺮﺣﻴﻢ ﻭﺍﻟﺼﻼﺓ ﻭﺍﻟﺴﻼﻡ ﻋﻠﻰ ﺭﺳﻮﻝ ﺍﻟﻠﻪ ، ﺍﻟﺤﻤﺪ ﻟﻠﻪ Software Architecture Styles Hany H. Ammar, Professor, LANE Department of Computer Science and Electrical Engineering West Virginia University, Morgantown, West Virginia, USA, and Visiting Professor, Faculty of Computers and Information, Cairo University, Cairo, Egypt Modeling and Documenting Software Architectures 1
OUTLINE Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • SW Systems Mix of Architecture Styles • Other Important Styles • Modeling and Documenting Software Architectures 2
Introduction Recall the definition of Styles • An architectural style is a coordinated set of architectural constraints that restricts the roles/features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style.
Introduction What does it give us? • An architectural style describes a certain codification of elements and their arrangements. • Conversely, an architectural style constrains both the elements and their interrelationships. • It specifies components and connectors types
Introduction Example Component Types
Ex: Con nect or Type s
Examples of Popular Architecture Styles
Families of Architecture Styles • There is a number of families of styles that has been defined and used in many software systems Notable examples are: 1. Independent Components: Event-based Architectures 2. Virtual Machines 3. Data Flow: Pipes and Filters 4. Data-Centered Systems 5. Call-and Return Architectures Modeling and Documenting Software Architectures 8
OUTLINE • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return Modeling and Documenting Software Architectures 9
Architectural Styles Independent Components 1. Independent Components. Architecture is viewed a set of independent processes or objects or components that communicate through messages. Two subfamilies: - Event based systems (implicit and direct invocation style), and - Communicating processes family (client-server style). Modeling and Documenting Software Architectures 10
Architectural styles: Event-based Architecture Some processes post events, others express an interest in events Modeling and Documenting Software Architectures 11
Event-based Architecture
Event-based Architecture Implicit Invocation: The Observer Pattern
Modeling and Documenting Software Architectures 14
Modeling and Documenting Software Architectures 15
Another Example: Lunar Lander Game Players Subscribers register to the Game Server that Publishes information on new Lunar Terrain data, new spacecraft, and the locations of currently registered space crafts Component-connector notation
Summary of Event-Based Style 1. Independent Components asynchronously emit and receive events communicated over event buses 2. Components are independent concurrent even generators and consumers 3. Data elements are events sent as first class entities over the event bus
Communicating Processes: Client. Server Architecture Style
OUTLINE • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return Modeling and Documenting Software Architectures 20
Architectural Styles Virtual Machines 2. Virtual Machines. Originated from the concept that programs are treated as data by a virtual machine, which is an abstract machine implemented entirely in software, that runs on top of the actual hardware machine. Ex: rulebased style. Modeling and Documenting Software Architectures 21
Architectural Styles Virtual Machines
Virtual Machines: The primary benefits are the separation between instruction and implementation, (Used when inputs are defined by a script and data) Example: Java Virtual Machine. Java code translated to platform independent bytecodes. JVM is platform specific and interprets (or compiles -JIT) the bytecodes. Modeling and Documenting Software Architectures 23
Virtual Machines Style
Virtual Machines Style Example
OUTLINE • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return Modeling and Documenting Software Architectures 26
Architectural Styles Data Flow 3. Data Flow. Include Batch Sequential Systems (BSS) and Pipes and Filters (PF). - BSS: different components take turns at processing a batch of data, each saving the result of their processing in a shared repository that the next component can access. Ex. Dynamic control of physical processes based on a feedback loop. - PF: A stream of data processed by a complex structure of process (filters). Ex, UNIX. Modeling and Documenting Software Architectures 27
Architectural Styles Data Flow: Control Loop and Pipes and Filters Control Loop Modeling and Documenting Software Architectures 28
BSS Architecture Style Example
BSS Style Summary
PF Example concurrency between components (Filters) is allowed
PF example in Embedded Systems concurrency between components (Filters) is allowed A Robotics Example
Modeling and Documenting Software Architectures 33
PF Another Architecture Example: Watch for the Two Views Modeling and Documenting Software Architectures 34
PFs Style Summary
OUTLINE • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return Modeling and Documenting Software Architectures 36
Data-Centered Architectural Styles 4. Data-Centered Systems. Consist of having different components communicate through shared data repositories. When data repository is an active repository that notifies registered components of changes in it then-blackboard style. Modeling and Documenting Software Architectures 37
Data-Centered Architectural Styles Repository Architecture Style
Data-Centered Architectural Styles Repository Architecture Example: CASE Tools Example
Data-Centered Architectural Styles Repository Architecture Example: Compiler Architecture
Data-Centered Architectural Styles Blackboard Architecture Style: Components perusing shared data, and communicating through it. Used in Database intensive systems Modeling and Documenting Software Architectures 41
Data-Centered Architectural Styles Blackboard Architecture Style Example Compare with the PFs Style
Data-Centered Architectural Styles Blackboard Architecture Style: Intelligent Agent Systems Example
Data-Centered Architectural Styles Blackboard Architecture Style: Travel Counseling System Example
Data-Centered Architectural Styles Blackboard Architecture Style: Intelligent Agent Systems Example
Blackboard Architecture Style: Intelligent Agent Systems Example
Data-Centered Architectural Styles Blackboard and Publish/Subscribe Styles: Intelligent Agent Systems Example
Blackboard Architecture Style
Rule-Based or Expert System Architecture Style: Three components, a user interface, an inference engine, and a knowledgebase
Rule-Based or Expert Systems Style
OUTLINE • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • SW Systems Mix of Architecture Styles Modeling and Documenting Software Architectures 51
Architectural styles Call-and Return Family 5. Call-and Return Architectures. Due to heir simple control paradigm and component interaction mechanism , these architectures have dominated the SW landscape by the early decades of the SW Eng. • There are several styles within this family: examples are main program and subroutine, and layered architectures. -) Main Program and Subroutine Style. Programs are modularized based on functional decomposition, single thread of control held by the main program, which is then passed to subprograms, along with some data on which the subprograms can operate. Modeling and Documenting Software Architectures 52
Main Program and Subroutine Style Register. exe Course registration System example People. Info Course Student. Info Course. Offering Modeling and Documenting Software Architectures 53 Professor. Info
Call-and Return Architectural styles -) Layered. Functionality is divided into layers of abstractioneach layer provides services to the layer(s) above it, and uses the services of layer(s) below it. In its purest form, each layer access only the layer below it, but does not depend on lower layers. Modeling and Documenting Software Architectures Based on general systems 54 Architecture, Network Architectures, etc.
Layered Architectural styles Example of a Layered Application Architecture
Layered Architectural styles Example: Interactive Electronic Technical Manual Layered Architecture Data Layer Business Layer Presentation Layer
Layered Architectural styles A Robotics Architecture The Reactive Layer contains basic skills of the robot such as grasping an object and behavior that must execute immediately in response to inputs from sensors. The Sequencing Layer combines functions in the reactive layer into more complex behavior. The Planning Layer performs slower Long-term planning
OUTLINE • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • SW Systems Mix of Architecture Styles Modeling and Documenting Software Architectures 58
SW Systems-Mix of Architecture Styles • Most SW systems use a mix of architecture styles. Ex, personnel management system with a scheduling component, implemented using the independent component style, and a payroll component, using the batch sequential style. Modeling and Documenting Software Architectures 59
SW Systems-Mix of Architecture Styles Quality Attributes tradeoffs • Choosing a style to implement a particular system depends on several factors based on stakeholders concerns. • The typical factors concern the level of quality attributes that each style enables us to attain. EX, event-based systems-achieve very high level of evolvability, at the expense of performance and complexity. • Virtual-machine style-achieve very high level of portability, at expense of performance and perhaps even testability.
SW Systems-Mix of Architecture Styles Components of each Layer use different architecture styles
SW Systems-Mix of Architecture Styles
OUTLINE Introduction • Software Architecture Styles • • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • SW Systems Mix of Architecture Styles • Other Important Styles • Buffered Massage-Based • Model-View-Controller • Presentation-Abstraction-Control • Broker Architecture Style • Service Oriented Architecture (SOA) Modeling and Documenting 63 • Peer-to-Peer Architecture Software Architectures
Buffered Massage-Based Software Architecture Style In the J 2 EE Paltform, • Java Massage Server (JMS) ia an API thatprovides Asynchronous massage queuing mechanism • Massage Driven Bean (MDB) is a special type of EJBs that consumes asynchronous massages
Buffered Massage-Based Software Architecture Style Clients can publish massages on the JMS and MDBs register with the JMS to receive Certain massage topics (asynchronous massage based publish/subscribe).
Buffered Massage-Based Software Architecture Style • The MDB plays the role of a massage listener It can connect remote Session EJBs or Entity EJBs
Web Application Example
Massage-Based Architecture Style consists of three types of components
Massage-Based Architecture Style
Massage-Based Architecture Style
OUTLINE Introduction • Software Architecture Styles • • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • • • Buffered Massage-Based Model-View-Controller Presentation-Abstraction-Control Broker Architecture Style Service Oriented Architecture (SOA) Peer-to-Peer Architecture Modeling and Documenting Software Architectures 71
Model-View-Controller Architecture Style • The Controller manipulates the data Model • The View retrieves data from the model and displays needed information
Model-View-Controller Architecture Style Dynamic Interactions
Model-View-Controller Architecture Style Web Applications Java-based Implementation Example
OUTLINE Introduction • Software Architecture Styles • • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • • • Buffered Massage-Based Model-View-Controller Presentation-Abstraction-Control Broker Architecture Style Service Oriented Architecture (SOA) Peer-to-Peer Architecture Modeling and Documenting Software Architectures 75
Presentation-Abstraction-Control Agents Architecture Style • • • Based on MVC Style but geared towards agent-oriented Systems Consists of a Hierarchy of Agents, each agent with a P, A, and C components The C component in each agent is in charge with communicating with other agents The top-level agent is in charge of the core data and business logics Lower-Level Agents provides detailed data and presentation
Presentation-Abstraction-Control Agents Architecture Style Example • Simple Presentation Application that can display Pages of a presentation • Consists one a top-level agent 1 and four lower level agents • Agent 1 have access to the pages, and the other agents respond to user requests for first, previous, next and last pages A scenario capturing the event of pressing the next button
Presentation-Abstraction-Control Style
Presentation-Abstraction-Control Style
PAC Style vs MVC Style
OUTLINE Introduction • Software Architecture Styles • • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • • • Buffered Massage-Based Model-View-Controller Presentation-Abstraction-Control Broker Architecture Style Service Oriented Architecture (SOA) Peer-to-Peer Architecture Modeling and Documenting Software Architectures 81
Broker Architecture Style Brokers gets requests from client proxies and manages them by forwarding to server Proxies or dispatches them to other connected brokers
Broker Architecture Style
Broker Architecture Style
Broker Architecture Style
Example: CORBA, Common Object Request Broker Architecture Client-Side Proxy IDL Server-Side Proxy (IDL)
Example: CORBA, Common Object Request Broker Architecture
OUTLINE Introduction • Software Architecture Styles • • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • • • Buffered Massage-Based Model-View-Controller Presentation-Abstraction-Control Broker Architecture Style Service Oriented Architecture (SOA) Peer-to-Peer Architecture Modeling and Documenting Software Architectures 88
Service Oriented Architecture (SOA) Style Makes use of an Enterprise Service Bus ESB Used in web-based systems and distributed computing The SOA Style Before SOA nodes make resources available to other participants in the system as independent services that the participants access in a standardized way using the ESB
Service Oriented Architecture (SOA) Style A Map of SOA Components Registry and Repository Manage and monitor Security Web Portals Human Business Process Management (BPM) Enterprise Service Bus (ESB) Data Services Process Services Business Logic Orchestration System BPM The ESB Performs: • data transformation • Intelligent routing • Real time monitoring • Exception handling • Service security Databases Systems of Record
Cloud Services Architecture SOA supports Cloud Computing Models
Cloud Services Architecture Human as a service, Software as a service, Infrastructure as a service
OUTLINE Introduction • Software Architecture Styles • • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • • • Buffered Massage-Based Model-View-Controller Presentation-Abstraction-Control Broker Architecture Style Service Oriented Architecture (SOA) Peer-to-Peer Architecture Modeling and Documenting Software Architectures 93
Peer-to-Peer Architecture Style
Peer-to-Peer Architecture Style The Gnutella Example • Pure Peer-to-Peer Architecture • A sends query for a data resource to neighbors B and H, they pass it on until the peer having the resource is found or until a certain threshold of hops is reached
Peer-to-Peer Architecture Style The Gnutella Example Recent Versions of Gnutella supports two types of peers Ultra peers and Leaf peers Ultra peers runs in systems with fast internet connects and are responsible for request routing and responses, they are connected to a large number of other Ultra peers and leaf peers, while the leaf peers are connected to a small number of Ultra peers
Peer-to-Peer Architecture Style The Skype Example • A mixed client-Server and Pee-to-Peer • Skype Peers get promoted to a supernode status based on their network connectivity And machine performance • Supernodes perform the Communication and routing of massages to establish a call • When a user logs in to the server he is connected to a supernode • If a peer becomes a supernode he unknowingly bears the cost of routing a potentially large number of calls.
Peer-to-Peer Architecture Style The Skype Example
Conclusions • An architectural style is a coordinated set of architectural constraints that restricts the roles/features of architectural elements and the allowed relationships among those elements • Choosing a style to implement a particular system depends on several factors based on stakeholders concerns and quality attributes • Most SW systems use a mix of architecture styles
- Hany ammar
- Hany ammar
- Hany ammar
- Outside lane vs inside lane
- Call and return architecture diagram
- Promotion from associate professor to professor
- Heba pronunciation
- Ammar yaseen
- Dr ammar attiya
- Zookeeper ammar
- Ammar mirascija
- Waleed ammar
- Ammar sultan
- Sinus feladatok
- Papp zsombor hány éves
- Hány szó van a magyar nyelvben
- Hány féle aminosav építi fel a fehérjéket
- Négyzetméter négyzetdeciméter
- Vízbontás endoterm
- Elektron hejak
- Hany el kateb
- Architecture business cycle
- Call and return architecture
- 3 types of pillars
- Modular decomposition styles in software engineering
- Integral product architecture
- Modular product architecture
- Three bus architecture
- Woodlane surgery ruislip
- Lane closure system
- Wisconsin lane closure system
- Lane position 1-5
- Making safe driving decisions the ipde process
- Front reference point
- Lane positions
- Lane's balance
- Shared center lane
- Broken yellow center line
- Outermost lane
- Basketball speed and agility
- When you apply the ipde process you may decide to
- Kenneth lane thompson
- Bambi feliks salten
- What happened when montag crossed the ten-lane highway
- Rklscp full form
- Kevin lane keller brand equity model
- Powerapps kanban
- Arrows on bowling lane
- Lane use control signal
- Info:https://kyiv.vlasne.ua/street/aivazovsky-lane/
- Lane shift taper formula
- Swim lane template
- Restricted lane ahead sign meaning
- Matsuo basho haiku in japanese and english
- Lane v franks
- Acceleration and deceleration lane
- Re german date coffee co
- Sonnendurchmesser in km
- Chapter 16 driving on highways
- Motorcyclists can make themselves more visible at night by.
- One-lane bridge problem semaphore
- Lane vowel sound
- Carrs lane counselling
- Curriculum guide for driver education in virginia module 3
- Expressway entrance components
- Banker swaps rat race for bus lane
- Ssvv examples
- What is the ffa creed
- Lane position 1-4
- Lane designation terminology
- Short entrance lane
- Corvidol
- 3333 hurricane lane
- Fra creed
- Byron's notion that he possessed
- Uccs wellness center
- Is survival selfish by lane wallace
- Julia lane coleridge
- I 95 express lane entrances virginia
- Maple lane elementary school
- National tim responder training answers
- Ibm retail store solutions
- The children of willesden lane characters
- Crow lane primary school
- Kids coding classes lane cove
- Pool y lane en bpmn
- Chick lane
- Multi lane free flow
- Toplumla sosyal hizmet uygulama modelleri
- Corey kendig
- Annuitetslån eller serielån
- Lane community college nursing
- David lane
- Peter lane and partners
- Lane allocation
- Lane factor
- Scnn lane detection
- David lane
- 3333 hurricane lane missouri city
- Cottage lane elementary school