Università degli Studi dell’Aquila L04: SA Styles Henry Muccini Dipartimento di Ingegneria, Scienze dell’Informazione e Matematica, University of L’Aquila henry.muccini@univaq.it, @henrymuccini
The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved. Henry Muccini
Intro to SA Intro to Software Testing SA Case study Structural Testing SA style Model-based Testing ADLs Architecture-based Testing Design Decisions Lab Views/Viewpoints UML Non Functional S.E. UML Profiling Performance modeling Lab Performance analysis
Prescriptive vs descriptive use of an architectural language
“A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” (Shaw & Clements, 1996) A set of constraints you put on your development to elicit desirable IMP properties from your software architecture. Topological Behavioral Communication-oriented etc. etc.
Architectural styles typically determine four kinds of properties [AAG93]: IMP
The Classical Style The Californian Style
Many similarities between patterns and styles But they have come from different communities Differences Architectural Styles Design Patterns Few Many Large-scale system Localized, small-scale organization design solutions
1. The top of a component may be connected to the bottom of a single connector. Comp1 NOT Permitted Connector Top Connector Bottom Comp1
2. The bottom of a component may be connected to the top of a single connector. Comp1 Comp1 NOT Permitted Connector Top Connector Bottom
3. There is no bound on the number of components or connectors that may be attached to a single connector. Permitted Comp1 Comp2 Comp3
4. When two connectors are attached to each other, it must be from the bottom of one to the top of the other. Connector Top Connector Bottom Permitted Connector Top Connector Top Connector Bottom Connector Bottom Connector Top Connector Top Connector Bottom Connector Bottom NOT Permitted
5. Components can communicate only through connectors Comp1 Permitted: NOT Permitted Following rule 4 Comp2
The communication between components and connectors is achieved solely exchanging messages The communication is based on notifications and requests Both component top domain and bottom domain can notify or request messages Requests Notifications Top Comp2 Bottom Comp2 receives a request Comp2 sends a notification Top Comp1 sends a request Comp1 receives a notification Comp1 Bottom Comp1 receives a request Comp1 sends a notification
ADL TOOLS DATE SUPPORT FOR ARCHITECTURAL STYLES Descrizione di proprietà ed interfacce relative a componenti AADL Osate 2001 + configurazioni di intercambio XML/XMI ACME Acme Studio+Armani 1995 Interscambio architetturale prevalentemente a livello strutturale ArchiTrio Trident 1990 Unisce lo stile delle notazioni standard UML 2.0 ai formalismi logico-temporali di TRIO ArchJava AcmeArchJava 2002 Supporta uno stile di programmazione flessibile orientato agli oggetti CommUnity CommUnity 2002 Linguaggio che si rispecchia negli stili UNITY ed IP WorkBench DARWIN LTSA-WS + SAA 1991 Architetture di sistemi distribuiti il cui dinamismo è guidato da un supporto severo e formale EAST-ADL AutoFocus2 2001/2004 La descrizione degli elementi del linguaggio è suddivisa in sei parti (domini) Ménage/xAD ArchStudio+Ménage 2000 Introduce la distinzione tra prescription e description della SA L PRISMA PrismaCase 2002 Definizione di elementi architetturali a due diversi livelli di astrazione xArch/xAcm Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate Acme Studio 2001 e però in XML xArch/xADL ArchStudio+Apigen 2000 Introduce la distinzione tra prescription e description della SA
C2 Style Pipes and filters Layered systems Blackboard style Implicit Invocation Idealized FT Component Model _________________________________________________ Peer to peer Hypertext style (!) MVC RUP
For each style, we will identify:
Layered Style Java Java Java Virtual Machine Operating Processor (Virtual Machine Style) System Virtual Machine Application
The Layered System Style A layered system is organized hierarchically, each layer providing service to the layer above and below Components Connectors Procedure calls or system calls Stylistic invariants
Application Application Presentation Presentation Session Session Transport Transport Network Network Network Network Data Link Data Link Data Link Data Link Physical Physical Physical Physical
Advantages Disadvantages
GLOBAL XCONN XCONN SHELF PERIPHE XCONN1 RAL XCONN1 1..1 1..1 1..1 1..2 1..1 1..2 XCONN2 1..1 XCONN2 1..1 1..1 1..1 1..1 1..1 … 1..1 1..1 … 1..1 1..1 XCONN3 XCONN3
Blackboad style 1..* Controller KS 1..* Blackboard
The Blackboard Style This style is characterized by a central data structure and a collection of components operating on the central data store The Blackboard is characterized by three main types of components (Corkill, 1991): Connector Property
Advantages Disadvantages
Distributed Peer-to-Peer Systems Components Connectors Configurations Computational model
Web Servers Browser Clients www.sitoweb.it Netscape Navigator HTTP www.website.com (asynchronous RPC) Microsoft IE www.laudaweb.it • Load balancing • Cooperative caching • Use of geographic distribution of the server machines.
Client/Server Systems Client/Server systems are the most common specialization (restriction) of the peer-to-peer style One component is a server offering a service The other components are clients using the service Server implementation is transparent but can be centralized or distributed, single-threaded or multi-threaded
3-Tier Client/Server Systems (example)
3-Tier Client/Server Systems 3-Tier Client/Server systems are a common class of distributed business systems First tier: Client (user interface) tier Second (middle, “business logic”) tier: Servers acting as “business objects”, encapsulating abstract, integrated models of multiple, disparate data sources Third (back-end, database) tier: Legacy business applications providing data services
WHAT IS P2P? There are 3 types of P2P System: 1st: Napster
WHAT IS P2P? 2nd: Gnutella
WHAT IS P2P? 3rd: SKYPE
Advantages Disadvantages Distributed state Potential for deadlock, starvation, race conditions, service outages Data marshalling and unmarshalling Proxies and stubs for RPC Legacy wrappers
Program unit (object, process, block, module, method, class, component, etc.) Service Request Reply Interface Exception Failure Exception Local Exception Normal Processing Error Processing Return to normal Service Request Reply Interface Exception Failure Exception
•The normal part implements the component’s normal services •The exceptional part implements the responses of the component to exceptional situations, by means of exception-handling techniques. •When the normal behavior of a component raises an exception (local exception) its exception handling part is automatically invoked. If the exception is successfully handled the component resumes its normal behavior, otherwise an external exception is signalled. •External exceptions are signalled to the enclosing context when the component realizes that is not able to provide the service.
Example
Let us take into consideration the Fire System example. Let us consider the: IMP
What you shall have learned You shall: Layered systems Blackboard style Peer to peer …

Software Architecture: Styles

  • 1.
    Università degli Studidell’Aquila L04: SA Styles Henry Muccini Dipartimento di Ingegneria, Scienze dell’Informazione e Matematica, University of L’Aquila henry.muccini@univaq.it, @henrymuccini
  • 2.
    The material inthese slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved. Henry Muccini
  • 3.
    Intro to SA Intro to Software Testing SA Case study Structural Testing SA style Model-based Testing ADLs Architecture-based Testing Design Decisions Lab Views/Viewpoints UML Non Functional S.E. UML Profiling Performance modeling Lab Performance analysis
  • 4.
    Prescriptive vs descriptiveuse of an architectural language
  • 5.
    “A set ofdesign rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” (Shaw & Clements, 1996) A set of constraints you put on your development to elicit desirable IMP properties from your software architecture. Topological Behavioral Communication-oriented etc. etc.
  • 6.
    Architectural styles typicallydetermine four kinds of properties [AAG93]: IMP
  • 7.
    The Classical Style TheCalifornian Style
  • 8.
    Many similarities betweenpatterns and styles But they have come from different communities Differences Architectural Styles Design Patterns Few Many Large-scale system Localized, small-scale organization design solutions
  • 10.
    1. The top of a component may be connected to the bottom of a single connector. Comp1 NOT Permitted Connector Top Connector Bottom Comp1
  • 11.
    2. The bottom of a component may be connected to the top of a single connector. Comp1 Comp1 NOT Permitted Connector Top Connector Bottom
  • 12.
    3. There is no bound on the number of components or connectors that may be attached to a single connector. Permitted Comp1 Comp2 Comp3
  • 13.
    4. When two connectors are attached to each other, it must be from the bottom of one to the top of the other. Connector Top Connector Bottom Permitted Connector Top Connector Top Connector Bottom Connector Bottom Connector Top Connector Top Connector Bottom Connector Bottom NOT Permitted
  • 14.
    5. Components cancommunicate only through connectors Comp1 Permitted: NOT Permitted Following rule 4 Comp2
  • 15.
    The communication betweencomponents and connectors is achieved solely exchanging messages The communication is based on notifications and requests Both component top domain and bottom domain can notify or request messages Requests Notifications Top Comp2 Bottom Comp2 receives a request Comp2 sends a notification Top Comp1 sends a request Comp1 receives a notification Comp1 Bottom Comp1 receives a request Comp1 sends a notification
  • 16.
    ADL TOOLS DATE SUPPORT FOR ARCHITECTURAL STYLES Descrizione di proprietà ed interfacce relative a componenti AADL Osate 2001 + configurazioni di intercambio XML/XMI ACME Acme Studio+Armani 1995 Interscambio architetturale prevalentemente a livello strutturale ArchiTrio Trident 1990 Unisce lo stile delle notazioni standard UML 2.0 ai formalismi logico-temporali di TRIO ArchJava AcmeArchJava 2002 Supporta uno stile di programmazione flessibile orientato agli oggetti CommUnity CommUnity 2002 Linguaggio che si rispecchia negli stili UNITY ed IP WorkBench DARWIN LTSA-WS + SAA 1991 Architetture di sistemi distribuiti il cui dinamismo è guidato da un supporto severo e formale EAST-ADL AutoFocus2 2001/2004 La descrizione degli elementi del linguaggio è suddivisa in sei parti (domini) Ménage/xAD ArchStudio+Ménage 2000 Introduce la distinzione tra prescription e description della SA L PRISMA PrismaCase 2002 Definizione di elementi architetturali a due diversi livelli di astrazione xArch/xAcm Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate Acme Studio 2001 e però in XML xArch/xADL ArchStudio+Apigen 2000 Introduce la distinzione tra prescription e description della SA
  • 17.
    C2 Style Pipes andfilters Layered systems Blackboard style Implicit Invocation Idealized FT Component Model _________________________________________________ Peer to peer Hypertext style (!) MVC RUP
  • 18.
    For each style,we will identify:
  • 19.
    Layered Style Java Java Java Virtual Machine Operating Processor (Virtual Machine Style) System Virtual Machine Application
  • 20.
    The Layered SystemStyle A layered system is organized hierarchically, each layer providing service to the layer above and below Components Connectors Procedure calls or system calls Stylistic invariants
  • 21.
    Application Application Presentation Presentation Session Session Transport Transport Network Network Network Network Data Link Data Link Data Link Data Link Physical Physical Physical Physical
  • 23.
  • 24.
    GLOBAL XCONN XCONN SHELF PERIPHE XCONN1 RAL XCONN1 1..1 1..1 1..1 1..2 1..1 1..2 XCONN2 1..1 XCONN2 1..1 1..1 1..1 1..1 1..1 … 1..1 1..1 … 1..1 1..1 XCONN3 XCONN3
  • 25.
    Blackboad style 1..* Controller KS 1..* Blackboard
  • 26.
    The Blackboard Style Thisstyle is characterized by a central data structure and a collection of components operating on the central data store The Blackboard is characterized by three main types of components (Corkill, 1991): Connector Property
  • 27.
  • 29.
  • 30.
    Web Servers Browser Clients www.sitoweb.it Netscape Navigator HTTP www.website.com (asynchronous RPC) Microsoft IE www.laudaweb.it • Load balancing • Cooperative caching • Use of geographic distribution of the server machines.
  • 31.
    Client/Server Systems Client/Server systemsare the most common specialization (restriction) of the peer-to-peer style One component is a server offering a service The other components are clients using the service Server implementation is transparent but can be centralized or distributed, single-threaded or multi-threaded
  • 32.
  • 33.
    3-Tier Client/Server Systems 3-TierClient/Server systems are a common class of distributed business systems First tier: Client (user interface) tier Second (middle, “business logic”) tier: Servers acting as “business objects”, encapsulating abstract, integrated models of multiple, disparate data sources Third (back-end, database) tier: Legacy business applications providing data services
  • 34.
    WHAT IS P2P? Thereare 3 types of P2P System: 1st: Napster
  • 35.
  • 36.
    WHAT IS P2P? 3rd: SKYPE
  • 37.
    Advantages Disadvantages Distributed state Potential for deadlock, starvation, race conditions, service outages Data marshalling and unmarshalling Proxies and stubs for RPC Legacy wrappers
  • 38.
    Program unit (object,process, block, module, method, class, component, etc.) Service Request Reply Interface Exception Failure Exception Local Exception Normal Processing Error Processing Return to normal Service Request Reply Interface Exception Failure Exception
  • 39.
    •The normal partimplements the component’s normal services •The exceptional part implements the responses of the component to exceptional situations, by means of exception-handling techniques. •When the normal behavior of a component raises an exception (local exception) its exception handling part is automatically invoked. If the exception is successfully handled the component resumes its normal behavior, otherwise an external exception is signalled. •External exceptions are signalled to the enclosing context when the component realizes that is not able to provide the service.
  • 40.
  • 41.
    Let us takeinto consideration the Fire System example. Let us consider the: IMP
  • 42.
    What you shallhave learned You shall: Layered systems Blackboard style Peer to peer …