Software Architecture: Styles

14,722 views

Published on

This is a lecture about Software Architecture Styles, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)

Published in: Education
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
14,722
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
427
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Software Architecture: Styles

  1. 1. Università degli Studi dell’AquilaL04: SA Styles Henry Muccini Dipartimento di Ingegneria, Scienze dell’Informazione e Matematica, University of L’Aquila henry.muccini@univaq.it, @henrymuccini
  2. 2. The material in these slides may be freely reproducedand distributed, partially or totally, as far as an explicitreference or acknowledge to the material author ispreserved. Henry Muccini
  3. 3. Intro to SA Intro to Software TestingSA Case study Structural TestingSA style Model-based TestingADLs Architecture-based TestingDesign Decisions LabViews/ViewpointsUML Non Functional S.E.UML Profiling Performance modelingLab Performance analysis
  4. 4. Prescriptive vs descriptive use of an architecturallanguage
  5. 5. “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 desirableIMP properties from your software architecture. Topological Behavioral Communication-oriented etc. etc.
  6. 6. Architectural styles typically determine four kinds of properties [AAG93]:IMP
  7. 7. The Classical StyleThe Californian Style
  8. 8. Many similarities between patterns and stylesBut they have come from different communitiesDifferences Architectural Styles Design Patterns Few Many Large-scale system Localized, small-scale organization design solutions
  9. 9. 1. The top of a component may be connected to the bottom of a single connector. Comp1 NOT Permitted Connector Top Connector Bottom Comp1
  10. 10. 2. The bottom of a component may be connected to the top of a single connector. Comp1 Comp1 NOT Permitted Connector Top Connector Bottom
  11. 11. 3. There is no bound on the number of components or connectors that may be attached to a single connector. PermittedComp1 Comp2 Comp3
  12. 12. 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 TopConnector Bottom Connector Bottom Connector Top Connector TopConnector Bottom Connector Bottom NOT Permitted
  13. 13. 5. Components can communicate only through connectors Comp1 Permitted: NOT Permitted Following rule 4 Comp2
  14. 14. The communication between components and connectors isachieved solely exchanging messagesThe communication is based on notifications and requestsBoth component top domain and bottom domain can notify orrequest 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
  15. 15. 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 CommUnityCommUnity 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 formaleEAST-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 astrazionexArch/xAcm Versione recente del linguaggio Acme che ne mantiene le caratteristiche di base, specificate Acme Studio 2001 e però in XMLxArch/xADL ArchStudio+Apigen 2000 Introduce la distinzione tra prescription e description della SA
  16. 16. C2 StylePipes and filtersLayered systemsBlackboard styleImplicit InvocationIdealized FT Component Model_________________________________________________Peer to peerHypertext style (!)MVCRUP
  17. 17. For each style, we will identify:
  18. 18. Layered Style Java Java Java Virtual Machine Operating Processor (Virtual Machine Style) System Virtual Machine Application
  19. 19. The Layered System StyleA layered system is organized hierarchically, each layer providing service to the layer above and belowComponentsConnectors Procedure calls or system callsStylistic invariants
  20. 20. Application ApplicationPresentation Presentation Session Session Transport Transport Network Network Network Network Data Link Data Link Data Link Data Link Physical Physical Physical Physical
  21. 21. AdvantagesDisadvantages
  22. 22. 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
  23. 23. Blackboad style1..* Controller KS1..* Blackboard
  24. 24. The Blackboard StyleThis style is characterized by a central data structure and a collection of componentsoperating on the central data storeThe Blackboard is characterized by three main types of components(Corkill, 1991):ConnectorProperty
  25. 25. AdvantagesDisadvantages
  26. 26. Distributed Peer-to-Peer SystemsComponentsConnectorsConfigurationsComputational model
  27. 27. Web Servers Browser Clients www.sitoweb.itNetscapeNavigator HTTP www.website.com (asynchronous RPC)Microsoft IE www.laudaweb.it • Load balancing • Cooperative caching • Use of geographic distribution of the server machines.
  28. 28. Client/Server SystemsClient/Server systems are the most common specialization (restriction) of the peer-to-peer styleOne component is a server offering a serviceThe other components are clients using the serviceServer implementation is transparent but can be centralized or distributed, single-threaded or multi-threaded
  29. 29. 3-Tier Client/Server Systems (example)
  30. 30. 3-Tier Client/Server Systems3-Tier Client/Server systems are a common class of distributed business systemsFirst tier: Client (user interface) tierSecond (middle, “business logic”) tier: Servers acting as “business objects”, encapsulating abstract, integrated models of multiple, disparate data sourcesThird (back-end, database) tier: Legacy business applications providing data services
  31. 31. WHAT IS P2P?There are 3 types of P2P System: 1st: Napster
  32. 32. WHAT IS P2P?2nd: Gnutella
  33. 33. WHAT IS P2P? 3rd: SKYPE
  34. 34. AdvantagesDisadvantages Distributed state Potential for deadlock, starvation, race conditions, service outages Data marshalling and unmarshalling Proxies and stubs for RPC Legacy wrappers
  35. 35. 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
  36. 36. •The normal part implements the component’s normal services•The exceptional part implements the responses of the component to exceptionalsituations, by means of exception-handling techniques.•When the normal behavior of a component raises an exception (local exception) itsexception handling part is automatically invoked. If the exception is successfullyhandled the component resumes its normal behavior, otherwise an externalexception is signalled.•External exceptions are signalled to the enclosing context when the componentrealizes that is not able to provide the service.
  37. 37. Example
  38. 38. Let us take into consideration the Fire System example. Let us consider the:IMP
  39. 39. What you shall have learnedYou shall: Layered systems Blackboard style Peer to peer …

×