SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Application Architecture

           Objectives for this talk
           Metaphors can be helpful
           Architecting software is …




    If you have a chance, please see the comments in this deck for more details.
Application Architecture




       Goals, Principles & Landscape

         The Scope of Architecture

             Applying a method
Architecture Goals


               System


        User       Business



Consider the impact on structure
Fundamental Principles

            Separation of Concerns

               Encapsulation

         Reuse over Duplication

      Evolutionary Design

Composition over Inheritance
Architectural Landscape

                    Agility
                    Users are No. 1
                    Market Maturity
                    Future Trends
The Scope of Architecture




Architecture Frame
                Architecture Styles
Quality Attributes           Application Types
Application Types




   Rich Client
   Web Client
Rich Internet Client
 Remote Services
  Mobile Client
Architecture Styles



Multi-Tier
                        Deployment
Client/Server
Message Bus
                      Communication
Service-orientation
Object-oriented
                           Structure
Component-oriented
Quality Attributes

   Availability   Extensibility
    Testability   Interoperability
Maintainability   Manageability
    Scalability   Security
 Performance      Reliability
Architecture Frame
Authentication
Authorization
Communication
Coupling & Cohesion
Caching & Data Access
Exception Mgmt.
Instrumentation
Data Validation
1: Identify objectives
2: Choose a key scenario
3: Make some choices
4: Test against hot spots
   5: Build a candidate


   Applying a Method
Step 1: Identify Objectives
Goals
        Consumers
              Constraints
Step 2: Choose a Key Scenario
                   Business Critical
                Broad Impact
            High Impact
Step 3: App Overview




                 Choose App Type
            Choose Arch Styles
      Choose Technologies
Deployment Scenario
Step 4: Test Against Hot Spots

                Architecture Frame
                Quality Attributes
… and then go pick another scenario




 Step 5: Build a Candidate
In Summary




Goals, Principles & Landscape

  The Scope of Architecture

      Applying a method
http://apparchguide.codeplex.com


                Your Call to Action
Appendix

The Architecture Meta Frame
The Agile Architecture Method
The Architecture Meta Frame
The Agile Architecture Method

Weitere ähnliche Inhalte

Ähnlich wie App Arch Guide (Dons)

An intro to building an architecture repository meta model and modeling frame...
An intro to building an architecture repository meta model and modeling frame...An intro to building an architecture repository meta model and modeling frame...
An intro to building an architecture repository meta model and modeling frame...wweinmeyer79
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxBereketMuniye
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?Òscar Vilaplana
 
Content Oriented Architectures (COA)
Content Oriented Architectures (COA)Content Oriented Architectures (COA)
Content Oriented Architectures (COA)Joe Gollner
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniquesMajong DevJfu
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...CSCJournals
 
The Intersection of Security & DevOps
The Intersection of Security & DevOpsThe Intersection of Security & DevOps
The Intersection of Security & DevOpsAlert Logic
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glanceTechcello
 
A new model for the selection of web development frameworks: application to P...
A new model for the selection of web development frameworks: application to P...A new model for the selection of web development frameworks: application to P...
A new model for the selection of web development frameworks: application to P...IJECEIAES
 
GSEP - PROCESS AND CHECKPOINT
GSEP - PROCESS AND CHECKPOINTGSEP - PROCESS AND CHECKPOINT
GSEP - PROCESS AND CHECKPOINTAlex Himmelberg
 
Choosing the Right Framework for Your Web Development Project.pdf
Choosing the Right Framework for Your Web Development Project.pdfChoosing the Right Framework for Your Web Development Project.pdf
Choosing the Right Framework for Your Web Development Project.pdfMPIRIC Software
 
Security for Architects and Developers
Security for Architects and DevelopersSecurity for Architects and Developers
Security for Architects and DevelopersShamir Charania
 
Presentation v4 print
Presentation v4 printPresentation v4 print
Presentation v4 printAnna Malahova
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non Itanicolay
 
Digital Security by Design: ISCF Digital Security by Design Research Projects...
Digital Security by Design: ISCF Digital Security by Design Research Projects...Digital Security by Design: ISCF Digital Security by Design Research Projects...
Digital Security by Design: ISCF Digital Security by Design Research Projects...KTN
 
The Intersection of Security and DevOps
The Intersection of Security and DevOpsThe Intersection of Security and DevOps
The Intersection of Security and DevOpsAlert Logic
 
Application Migration Using The Accelerated Delivery Platform
Application Migration Using The Accelerated Delivery PlatformApplication Migration Using The Accelerated Delivery Platform
Application Migration Using The Accelerated Delivery PlatformSander Hoogendoorn
 
Application Migration using the Accelerated Delivery Platform
Application Migration using the Accelerated Delivery PlatformApplication Migration using the Accelerated Delivery Platform
Application Migration using the Accelerated Delivery PlatformSander Hoogendoorn
 

Ähnlich wie App Arch Guide (Dons) (20)

An intro to building an architecture repository meta model and modeling frame...
An intro to building an architecture repository meta model and modeling frame...An intro to building an architecture repository meta model and modeling frame...
An intro to building an architecture repository meta model and modeling frame...
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?
 
Content Oriented Architectures (COA)
Content Oriented Architectures (COA)Content Oriented Architectures (COA)
Content Oriented Architectures (COA)
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
 
The Intersection of Security & DevOps
The Intersection of Security & DevOpsThe Intersection of Security & DevOps
The Intersection of Security & DevOps
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
A new model for the selection of web development frameworks: application to P...
A new model for the selection of web development frameworks: application to P...A new model for the selection of web development frameworks: application to P...
A new model for the selection of web development frameworks: application to P...
 
GSEP - PROCESS AND CHECKPOINT
GSEP - PROCESS AND CHECKPOINTGSEP - PROCESS AND CHECKPOINT
GSEP - PROCESS AND CHECKPOINT
 
Choosing the Right Framework for Your Web Development Project.pdf
Choosing the Right Framework for Your Web Development Project.pdfChoosing the Right Framework for Your Web Development Project.pdf
Choosing the Right Framework for Your Web Development Project.pdf
 
Security for Architects and Developers
Security for Architects and DevelopersSecurity for Architects and Developers
Security for Architects and Developers
 
Presentation v4 print
Presentation v4 printPresentation v4 print
Presentation v4 print
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non It
 
Digital Security by Design: ISCF Digital Security by Design Research Projects...
Digital Security by Design: ISCF Digital Security by Design Research Projects...Digital Security by Design: ISCF Digital Security by Design Research Projects...
Digital Security by Design: ISCF Digital Security by Design Research Projects...
 
Interactive SDLC
Interactive SDLCInteractive SDLC
Interactive SDLC
 
The Intersection of Security and DevOps
The Intersection of Security and DevOpsThe Intersection of Security and DevOps
The Intersection of Security and DevOps
 
Application Migration Using The Accelerated Delivery Platform
Application Migration Using The Accelerated Delivery PlatformApplication Migration Using The Accelerated Delivery Platform
Application Migration Using The Accelerated Delivery Platform
 
Application Migration using the Accelerated Delivery Platform
Application Migration using the Accelerated Delivery PlatformApplication Migration using the Accelerated Delivery Platform
Application Migration using the Accelerated Delivery Platform
 

Mehr von rsnarayanan

Kevin Ms Web Platform
Kevin Ms Web PlatformKevin Ms Web Platform
Kevin Ms Web Platformrsnarayanan
 
Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnetrsnarayanan
 
Harish Aspnet Dynamic Data
Harish Aspnet Dynamic DataHarish Aspnet Dynamic Data
Harish Aspnet Dynamic Datarsnarayanan
 
Harish Aspnet Deployment
Harish Aspnet DeploymentHarish Aspnet Deployment
Harish Aspnet Deploymentrsnarayanan
 
Whats New In Sl3
Whats New In Sl3Whats New In Sl3
Whats New In Sl3rsnarayanan
 
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...rsnarayanan
 
Advanced Silverlight
Advanced SilverlightAdvanced Silverlight
Advanced Silverlightrsnarayanan
 
Occasionally Connected Systems
Occasionally Connected SystemsOccasionally Connected Systems
Occasionally Connected Systemsrsnarayanan
 
Developing Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And ServicesDeveloping Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And Servicesrsnarayanan
 
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...rsnarayanan
 
J Query The Write Less Do More Javascript Library
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Libraryrsnarayanan
 
Ms Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My SqlMs Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My Sqlrsnarayanan
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developersrsnarayanan
 
What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1rsnarayanan
 
Ux For Developers
Ux For DevelopersUx For Developers
Ux For Developersrsnarayanan
 
A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8rsnarayanan
 

Mehr von rsnarayanan (20)

Walther Aspnet4
Walther Aspnet4Walther Aspnet4
Walther Aspnet4
 
Walther Ajax4
Walther Ajax4Walther Ajax4
Walther Ajax4
 
Kevin Ms Web Platform
Kevin Ms Web PlatformKevin Ms Web Platform
Kevin Ms Web Platform
 
Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnet
 
Walther Mvc
Walther MvcWalther Mvc
Walther Mvc
 
Harish Aspnet Dynamic Data
Harish Aspnet Dynamic DataHarish Aspnet Dynamic Data
Harish Aspnet Dynamic Data
 
Harish Aspnet Deployment
Harish Aspnet DeploymentHarish Aspnet Deployment
Harish Aspnet Deployment
 
Whats New In Sl3
Whats New In Sl3Whats New In Sl3
Whats New In Sl3
 
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
 
Advanced Silverlight
Advanced SilverlightAdvanced Silverlight
Advanced Silverlight
 
Netcf Gc
Netcf GcNetcf Gc
Netcf Gc
 
Occasionally Connected Systems
Occasionally Connected SystemsOccasionally Connected Systems
Occasionally Connected Systems
 
Developing Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And ServicesDeveloping Php Applications Using Microsoft Software And Services
Developing Php Applications Using Microsoft Software And Services
 
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
 
J Query The Write Less Do More Javascript Library
J Query   The Write Less Do More Javascript LibraryJ Query   The Write Less Do More Javascript Library
J Query The Write Less Do More Javascript Library
 
Ms Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My SqlMs Sql Business Inteligence With My Sql
Ms Sql Business Inteligence With My Sql
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
 
What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1What Is New In Wpf 3.5 Sp1
What Is New In Wpf 3.5 Sp1
 
Ux For Developers
Ux For DevelopersUx For Developers
Ux For Developers
 
A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8
 

Kürzlich hochgeladen

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 

Kürzlich hochgeladen (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 

App Arch Guide (Dons)

Hinweis der Redaktion

  1. Objectives for this talk: - To help you understand how we think about software architecture - To make reading and applying the guide easier for you when you read itMetaphors can be helpful - They can help you conceptualize things in a unique way - But we’re not going to use the typical “architecting buildings”Now let’s try an exercise. Provide 3 descriptive words to finish the sentence and remember them.Prepared and delivered by:Don Smith, Program ManagerMicrosoft patterns & practices
  2. I’ve done that exercise with a number of people, and every time, the word “hard” or “difficult” makes it in the top three. This talk asserts that the same descriptive words that describe architecting software can be said about raising children.After we cover some initial goals and principles, we’ll spend some time describing the scope of software architecture and close with how you might apply an iterative method (process) for applying what we’ve learned.By the way, if you’re reading these notes in PowerPoint, the “Notes Page View” tends to work better than the “Normal” view.Photo credit: http://www.flickr.com/photos/ian_riley/2345482452/
  3. As far as these kids were concerned, it’s pretty clear what the “goal” was, huh? The solutions we architect provide value to the business by giving its users tools to work, but must live within the constraints imposed by both users and the business in addition to the environment those solutions execute in and the teams that are building them. Therefore it’s important to establish goals for each one of these areas.Remember, software architecture is about making decisions … and those decisions primarily revolve around the structure of the system. So as you are considering your goals for each of these influences on the solution you’re building, be sure to consider the structural impact of those goals.Photo credit: http://www.flickr.com/photos/ian_riley/106239828/
  4. Throughout school, children are separated by age because in school, the “concerns” are all related to particular age groups. We do the same thing with our children. For example, I sometimes separate my 13 year old daughter from concerns I am working with my 16 year old on.In most relationships, transparency is a very good thing. In the relationship various structures have in a software solutions, it is not. Encapsulation prevents other structures from accessing or even knowing about the internal data of a structure or how that data is used.In my opinion, duplication is the single biggest problem that causes systems to become brittle in the face of keeping that solution up to date and free from bugs. This is because when a bug needs to be fixed or the design of the system needs to be evolved, the same change must be applied in multiple places. If you don’t, the system will just break in a different way or in a different place.The adage “the only constant is change” is more true in software than anywhere. Rather than try to avoid it, we should embrace it and learn to manage it.Both composition and inheritance describe a relationship between 2 structures. Over the years, we’ve come learn how to manage composition much better than inheritance. This isn’t to say you should never apply inheritance … you should just consider composition first.Photo credit: http://www.flickr.com/photos/21967211@N02/2153112397/
  5. There are a number of factors that are taking place in our industry that influence architectural decisions. In the face of the Agile movement (Scrum/XP/etc) development teams are getting smaller to increase the fidelity of the communication in the team. This is causing architects to give more thought to the structure of the system so parts of it can be developed independently and composed later.Social computing (Facebook, Twitter, Digg, etc.) are putting a tremendous amount of power in the hands of their users to manage their personal relationships. Services like these and others (outside of social networking) are giving users a very important thing: choice. This causes those of us building solutions to put the users at the forefront of decisions … assuming we want them to use our system. But even in “captive audiences”, they see what is available and they are demanding more of us.Our industry has made massive progress in the past decade when it comes to building software (.NET, Java, network infrastructure, etc). All of this capability provides us the freedom to rethink our designs and decisions on the solutions we’re building.There are more advances coming. And if you look at some of the trends carefully enough (multi-core, HPC, mobile devices, cloud computing, modeling, etc), you can see the opportunities you’ll have in your decision making in the near future. The better you plan for them now, the easier it will be to take advantage of them when they arrive.Photo credit: http://www.flickr.com/photos/ian_riley/2314516818/
  6. This is the “what” of architecture from our perspective. This section provides a way to organize many architectural concepts in a digestible way that can be actionable later.I chose this picture (not just because it is a beautiful shot), but because of the expressions on the girls faces. I believe they relate to the reaction many people will have about 3 of the main areas we’re going to talk about: The architecture frame Architecture Styles Application TypesThe girl on the right is smiling. I think most people will immediately understand these types because they are the language we use today to describe applications. The girl in the middle looks somewhat confused. Most of us have heard of these styles, but probably not ever seen them related this way. I’ll try to make sense of their relationship in a moment. The captivating girl on the left (my personal favorite) looks thoughtful, which is exactly the way the architecture frame should be approached.The forth area is Quality Attributes. We could say that represents the beautiful scene behind the girls, but I wouldn’t argue if you said that was a stretch. Let’s now discuss each of these areas individually, starting with application types.Photo credit: http://www.flickr.com/photos/krisvdv/336502237/
  7. Application types could be considered the careers we would wish for our children – the impact we hope they can have when they get older. These are commonly understood and sometimes they can be identified early … sometimes we need more information to make a choice. Application Types relate to how consumers interface with their capabilities.[provide written descriptions of each of these later] Rich Client Web Client Rich Internet Client Remote Services Mobile ClientNow let’s peek into other ways we can describe and think about the applications we’re building.Photo credit: http://www.flickr.com/photos/30128498@N05/2836060972/
  8. Architecture styles are common terms in our industry that have never seemed to have a good way of relating to each other. This is because their characteristics differ across various factors and at various levels. They tend to represent a collection of various patterns, deployment assumptions, and benefits. When architecting solutions, it can be very helpful to have an understanding about which styles you will use and how you think about them.Photo credit: http://www.flickr.com/photos/rudiroels/2978700418/
  9. These children are doing calisthenics to gain some Quality attributes – specifically a strong spirit and body. We should know which are the most important for our application.Quality attributes and their priority have a substantial influence on the architectural decisions we make. These are just a few of the most important ones for most enterprise applications.Patterns & practices has done a significant amount of work in security and performance. This guide can pave the way for us to do more in these other areas.Photo credit: http://www.flickr.com/photos/knezovjb/2102314562/
  10. The architecture frame exists to make sure we don’t miss anything in our decisions. She certainly looks like she doesn’t want to miss anything.Photo credit: http://www.flickr.com/photos/crabom/3050306836/
  11. Now that we’ve had a chance to see the different areas that make up the scope of architecture, now let’s see how we can apply that knowledge in an iterative way. Let’s go back to our metaphor to get an overview of this process and then we’ll go into each step and apply it to architecture.1: As you raise your children, you will have a sense of the most important things are. These are generally the most important things to you (health, intelligence, a sense of service). 2: Over the years you will likely encounter problems … and these problems will need solutions. In this step, you choose the specific scenario that exemplifies the problem (bedtime, dinner time, behavior in public). As a parent, you will likely pick the most important ones first.3: In this step, you choose an approach to fix the problem. As a parent, you’ll try different communication approaches, different styles of motivation, different forms of punishment.4: After you’ve decided on an approach, it’s important that you’re being comprehensive, and that the choice isn’t violating an important concern. For example, you wouldn’t want to choose a form of punishment that get’s them to school on time, but completely unmotivated to do their best5: After all of these choices and consideration, you should try it and see if the outcomes are what you were expecting.Photo credit: http://www.flickr.com/photos/wwwflickrcomphotosjaggy/3049614631/
  12. Know what your goals are from the outset. Make sure they represent the level of effort you intend to apply.Know who all of the consumers are of your architecture. Developers Testers Writers Other architect Business representativesMake sure you’ve identified your constraints around: People Money Environment Knowledge of the domainPhoto credit: http://www.flickr.com/photos/yilud/533597179/
  13. It’s pretty obvious in the picture what the key scenario was. It certainly wasn’t to find a table Business Critical scenarios illustrate challenge having to do with the domain. Can be response time, number of users.Broad Impact scenarios are those that impact many parts of the solution. This is common with cross cutting concerns. For example, how to flow a user’s security credentials to a back end system.High Impact scenarios are the most important … the ones of highest importance.We will use these scenarios later to test the other steps of this method.Photo credit: http://www.flickr.com/photos/ian_riley/2313703797/
  14. Step 3 is about making choices based on the goals, objectives, and key scenario you identified in the previous steps.I’m not exactly sure what these boys are doing, but I’m convinced they are making choices about something vitally important.Photo credit: http://www.flickr.com/photos/ian_riley/478284591/
  15. Okay, I’m pretty sure this little boy isn’t actually taking a test, but I just liked the picture so much I had to use it. Although, he is giving a lot of thought to something.In this step, ensure the choices you made in the last step don’t violate important hotspots in the architecture frame and that they enforce the highest priority quality attributes.Photo credit: http://www.flickr.com/photos/zhujmu/2964662532/
  16. This is the step where you get to validate your work with a real, end-to-end, thin implementation. When you start the iteration over again, validate your implementation of your architecture. Then you can choose the next scenario and continue this process (refactoring as necessary) along the way.Photo credit: http://www.flickr.com/photos/mfi/2829003030/
  17. Photo credit: http://www.flickr.com/photos/chrissuderman/248876814/
  18. Use the guideApply the methodSpeak the language Give us feedbackPhoto credit: http://www.flickr.com/photos/dbhillyard/444538787/