9. Architecture Venkat Subramaniam Arch-1 What’s Architecture? • Description of sub-system – Components/sub-systems – Their interaction • Framework for communication Venkat Subramaniam Arch-2
Architectural Design • Establishes a basic structural framework • Identifies major components of a system • Communication between them Venkat Subramaniam Arch-3 Why do you need it? • Useful for communication • Helps analyze ability to meet requirements • Leads to repeatable, reusable concepts Venkat Subramaniam Arch-4
� � Issues to deal with • Potentially conflicting issues • Performance ✁✄✂☎✂✝✆✟✞✡✠☞☛✌✂✝✂✎✍✟✏✒✑✓✞✔✂✎✕✗✖✙✘✛✚✝✜✢✖✤✣✥✖✦✞✡✂✎✧✩★✪✠✫✧✟✧✟✘✎✑✎✏✬★✦✭✮✞✯✏ ✠✛✑✰✧✟✏✒✑✱✏✒✧✲✘✛✧ ✂✓✵✱✂✎✶✮✠✮✷✄✸✹✕✺✭✛✑✱✘✛✶✬✭✛✕✻✏ ✞✼✣✲✠✮✷✄★✪✠✛✧✟✍✓✠✛✑✮✂✎✑✓✞✔✖ �✴✳ • Security ✭✝★✿✾❀✶ ✭☎✣✥✂✎✕❁✾☎✭✝✖❂✞✡✠✲✆❃✂✮✭✛✶✓❄❅✏ ✞❆✾❇✖✪✂✮★✙✘✛✕✻✏ ✞❈✣ �✴✽ ✂❃✶✒✶✎✍✱✕✺✠✮✞✔✂✮★❋✞✔✂✮✆●✏✒✑✓✷❍✠✛✕✻✧■✭✮✞❏✏ ✠✛✑❀✏✒✑✟✏✒✑✱✑✮✂❃✕❁✶✬✭☎✣✥✂✎✕✺✖ �❊❉ • Safety/validation ✁✄✂☎✂✝✆✟✞✡✠❑✏✬✖✦✠✛✶✬✭✮✞✔✂✰✏✒✑☎✞✡✠▲✠✛✑✮✂❇✠✛✕✗✭▲✷❍✂☎❄▼✖✿✘✛✚✝✜✢✖✤✣✥✖✦✞✔✂✎✧■✖ • Availability/reliability/redundancies ✾☎✭✮✞◆✭✛✚✓✠✎✘✮✞❖✭☎✵✥✭✛✏P✶✬✭✛✚✥✏◗✶◗✏ ✞✼✣✎❘❙✶ ✠✝✭✝✆✫❘❚✷❯✭✛✏◗✶◗✘✎✕✺✂✱❘❚✷❍✭✎✘❃✶ ✞❱✞✔✠✛✶✬✂✎✕✺✭✛✑☎★✪✂ �❊❉ • Maintainability ✧■✭✛✶P✶✬✂✎✕✗✖✙✘✛✚✝✜✢✖❋✣✝✖✦✞✔✂❃✧✩✞✡✠☞✧■✭✛☛✌✂❀✏ ✞❖✂✮✭✝✖✿✏✬✂✎✕❨✞✡✠☞✧❇✭✛✏◗✑☎✞✼✭✛✏✒✑ �❳❲ Venkat Subramaniam Arch-5 Architectural Representation • Block diagrams generally used • Effective to communicate different sub- systems • Not effective to describe sub-system interface • Goal: design so that requirement change does not propagate across several sub- systems Venkat Subramaniam Arch-6
Developing Architectural Design • Very creative process • Job of a system architect • Varies based on system, experience, requirements Venkat Subramaniam Arch-7 General Questions • Questions and considerations • Do we have a template to start with? • Style • System structure • Sub-system decomposition • Measure of quality • Documentation Venkat Subramaniam Arch-8
Models • Client-server model • Layered model • Combined style • Static Structure Model • Dynamic Process Model – Processes at runtime • Interface Model – Sub-system interface • Relationship Model – Dataflow, communication, … • Distribution Model – Distribution across processors, computers Venkat Subramaniam Arch-9 Organization • Decided by • Data • Services • Functional Venkat Subramaniam Arch-10
Repository Central Storage Message Passing • Considerations – Efficiency – Format of data – Data Usage – Change to format – Centralization and maintenance – Force on the sub-systems Venkat Subramaniam Arch-11 Client-Server Model Client Server Different services: File, Printing, Computation, … • May be on one box • May be across machines • May be physical distribution or simply logical Venkat Subramaniam Arch-12
Layering • How do we structure the application in a way that it is maintainable, robust, reliable, secure and robust? • Separate the components into layers • The layers will have loose coupling • Each layer is cohesive • Components in a layer interact with – Components within the layer – Components in layer below it Venkat Subramaniam Arch-13 Layering … • In a strict layering, components do not talk to any layer other than the one below it • In a more relaxed layering, components may bypass one or two layers below Layer n Layer n Layer 3 Layer 2 Layer 1 Venkat Subramaniam Arch-14
Tier Distribution • Layering is more logical • Tier distribution talks about how the application is distributed across different hardware • The physical tiers is composed of different computers that share: – Resources • Like sockets, disc space, etc. – Operational requirements • Security, scalability, – Constraints • Location may be dictated by constraints like security Venkat Subramaniam Arch-15 Three-Tier Distribution Client Tier ASP.NET/ Win Forms/ Web Services Application Tier (Business Tier) Component Libraries Data Tier ADO.NET/Database Access Venkat Subramaniam Arch-16
Recommend
More recommend