SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Neward & Associates




                                                                                                                                            Credentials

                                                                                                 Who is this guy?
                                                                                                 –   Independent consultant, architect, mentor
                                                                                                 –   Instructor, PluralSight (www.pluralsight.com)
                                                                                                 –   BEA Technical Director, Microsoft MVP Architect
                                        Pragmatic Architecture                                   –   JSR 175, 250, 277 EG member
                                                                                                 –   Founding Editor-in-Chief, TheServerSide.NET
                                                                                                 –   Author
                                                                                                     • Effective Enterprise Java (Addison-Wesley, 2004)
                                                                                                     • Effective .NET (Forthcoming)
                                                                 Ted Neward                          • Pragmatic XML Services (Forthcoming)
                                                                                                     • Pragmatic .NET Project Automation (Forthcoming)
                                                            Neward & Associates                      • Server-Based Java Programming (Manning, 2000)
                                                        http://www.tedneward.com                     • C# in a Nutshell (OReilly, 2003)
                                                                                                     • SSCLI Essentials (w/Stutz, Shilling; OReilly, 2003)
                                                                                                 – Papers at http://www.tedneward.com
                                                                                                 – Weblog at http://blogs.tedneward.com




                                                                  Objectives                                                                           Agenda

                  So you wanna be an architect…                                             High-level ruminations
                      … but you’re not sure what architecture means                              what is architecture? what is a software architect?
                      … but you’re not sure what an architect does                               why does anyone care?
                      … but you don’t want to lose the respect of your                      Architectural catalog
                       developer friends & teammates (who are convinced
                                                                                                 a look at a collection of architectural elements
                       that “architect” is Latin for “cannot code anymore”)
                                                                                                 intended as a “starting point” for concrete architectural
                                                                                                   discussions
                  Architecture does have a purpose                                          Pragmatic approach
                         (and it’s not to provide retirement for                                 cut through the bull, talk shop: how do we architect?
                         programmers!)
                                                                                                   what are we producing? what does it do for us?




                                                              Architecture                                                                Architecture

                  The Dark Side of the Architecture                                         ar—chi—tec—ture [áarki tèkchәr]
                                                                                            noun
                                                                                            1.   building design: the art and science of designing
                  “Why I Hate Frameworks”                                                        and constructing buildings
                  http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12
                                                                                            2.   building style: a style or fashion of building,
                                                                                                 especially one that is typical of a period of history or
                  “Architecture Astronauts”                                                      of a particular place
                  http://www.joelonsoftware.com/articles/fog0000000018.html                 3.   structure of computer system: the design,
                                                                                                 structure, and behavior of a computer system,
                                                                                                 microprocessor, or system program, including the
                                                                                                 characteristics of individual components and how they
                                                Source: “Joel on Software” , Joel Spolsky
                                                                                                 interact




© 2006 Neward & Associates. All rights reserved.
This presentation is for informational purposes only.                                                                                                           1
Neward & Associates




                                                                      Architecture                                                                   Architecture

                  What defines the difference                                                Pragmatic Architecture?
                    between these two
                    buildings?
                      –   goals
                      –   scope
                      –   complexity                                                         “Pragmatism urges us to look to the
                      –   materials                                                             consequences of what we do, which the
                      –   process                                                               discipline of architecture, infused with an
                      –   … more
                                                                                                idealistic focus on intentions, frequently
                  More importantly, how do
                     we know when one                                                           resists.”
                                                                                                   http://query.nytimes.com/gst/fullpage.html?res=9B0CE2DB103DF932A35751C1A9669C8B63
                     “style” of building is
                     more appropriate than
                     another?




                                                                      Architecture                                                                        Architects

                  What do we expect of a “good” architecture?                                So then… what is an architect?
                      – the “ities”: Integrity, Simplicity, Reliability,
                        Extensibility, Maintainability, Modularity,
                        Recoverability, Composability, Parsimony, Scalability,
                        Security, Performability1, Longevity, and so on… and
                        so on… and so on…
                      – make it easy for developers to make “right” decisions
                        (where “right” => “right for this project or system”)

                          in other words, enable “correctness by default”

                          or, rather, have developers using our architecture
                          "fall naturally into the pit of success"
                    1 I know “Performability” isn’t a word; unfortunately for us, the word

                    “Performance” doesn’t end in “ity”.




                                                                           Architects                                                                     Architects

                  An architect is someone who …                                              Architects …
                      – … defines architecture                                                  – understand
                      – … gets paid more than “real” developers do                              – reassess
                      – … focuses on issues that have nothing to do with real-                  – explore
                        world problems
                      – … thinks in terms of clouds, not code
                      – … speaks with big words and Powerpoint slides
                      – … has no real idea what they’re doing and has
                        management completely fooled to that fact




© 2006 Neward & Associates. All rights reserved.
This presentation is for informational purposes only.                                                                                                                                  2
Neward & Associates




                                                                         Architects                                                                                 Architects

                  Architects understand …                                                                Architects reassess …
                      – goals                                                                                – goals
                        (go back to the “ities”)                                                                changing business climate changes goals
                      – constraints                                                                          – constraints
                        Money                                                                                   changing business climate changes constraints
                        Time                                                                                 – project’s progress against those goals
                        Resources (developers, machines, etc)
                                                                                                             – project’s impact on the business
                        Domain
                        Abilities of the team members                                                           competitive advantage, users’ reactions,
                                                                                                                productivity, costs/benefits/ROI
                                   “A journey of a thousand miles always begins with a single step”
                                                                            --Ancient Chinese proverb                          “No plan ever survives first contact with the enemy”
                                                                                                                                                                –Napoleon Bonaparte
                                      “A journey of a thousand miles doesn’t begin with a single step;
                                                                        it starts with the damn map”
                                                                                        --Ted Neward




                                                                         Architects                                                                                 Architects

                  Architects need to explore …                                                           The Three Kinds of Architects
                      – new technologies                                                                     – Infrastructure Architect
                                                                                                                “[responsible] for the design of the datacenter,
                      – new methodologies
                                                                                                                deployment and maintenance of
                      – new “isms”                                                                              applications/services across the organization”
                      – in short, determine the viability of new technologies                                – Enterprise Architect
                        to fit the needs of current system(s)                                                   “concerned about the strategic vision of application
                                                                                                                and services within the organization”
                        what changes would be necessary                                                      – Solution Architect
                        prototype new technologies
                                                                                                                “responsible for the design of one or more
                        analyze their impact within existing architecture                                       applications or services within an organization,
                      – NOTE: be careful of “The Coolness Trap”                                                 usually within the scope of a division”
                        “cool” doesn’t mean “appropriate”…                                                   – (We’re talking mostly to the Solution Architect role)

                                                                                                                                      Source: “Three Kinds of Architects” , Simon Guest




                                                                    Architecture                                                                                           Catalog

                     Patterns & architecture                                                             Technology-architectural decisions
                      – isn’t architecture just judicious application of patterns?                           – is the jar full?
                                                                                                             – how about now?
                        No—as it turns out, even in Alexander’s case
                        directly, trying to use the patterns naïvely led to
                        failure, not once, but twice
                      – aren’t patterns in of themselves architecture?
                         No—patterns help describe architectural elements,
                        but they aren’t architecture in of themselves
                      – so what do patterns do for us?
                        Give us a lexicon, a glossary, by which to discuss
                        systems at a higher-level of abstraction, so we can
                                                                                                         "Big" decisions will be about architecture constraints
                        talk without getting bogged down in irrelevant                                   Remaining decisions will create the tools your team uses
                        details; that is, keep an appropriate level of scope                               for the forseeable future

                                                                                                               Source: http://www.bredemeyer.com/pdf_files/Presentations/SoftwareArchitectureIntro.PDF




© 2006 Neward & Associates. All rights reserved.
This presentation is for informational purposes only.                                                                                                                                                    3
Neward & Associates




                                                                  Catalog                                                  Catalog

                  Architectural Elements                                    Communication/Distribution
                      –   Communication/Distribution                           – Transport
                      –   Presentation/Interaction                                 Over what medium does the communication travel?
                                                                                   Examples: TCP, UDP, ICMP, HTTP, named pipes,
                      –   State Management
                                                                                   filesystem, queues, and more …
                      –   Processing                                           – Exchange
                      –   Resource Management                                      How do we interact?
                      –   Tools                                                    Examples: request/response, solicit-notify, async,
                                                                                   fire-and-forget, and more …
                                                                               – Format
                                                                                   In what format does the data travel?
                                                                                   Examples: XML, code, text, JSON, raw binary,
                                                                                   serialized objects, and more …




                                                                  Catalog                                                  Catalog

                  Presentation/Interaction                                  State Management
                      – style                                                  – Durable vs. Transient State
                          Graphical                                                state held across processing steps vs
                          Console                                                  state held during processing
                          None                                                 – Relational vs. Object vs. Hierarchical
                      – implementation                                             what is the “shape” of the data?
                          Markup (HTML, Acrobat)                               – Context-based vs. Process-based state
                          Code (WinForms, Flash)                                   where is the transient state held?
                      – perspectives
                          User, Administrative, Reported, …
                      – composite
                          Aggregates multiple applications into one
                          Based around a single style




                                                                  Catalog                                                  Catalog

                  Processing                                                Resource Management
                      – Implementation                                         –   Locator/Registry
                          Procedural/Imperative
                                                                               –   Discovery
                          Classes/Objects
                          Declarative                                          –   Injected
                          Rules
                      – Concurrent/Parallel (SISD, SIMD, MISD, MIMD)
                                                                               –   A priori Knowledge
                          Divide and Conquer
                          Recursive Data
                          Pipeline/Pipes-and-Filters
                          Event-based Coordination
                          Master/Slave, Fork/Join
                          Shared Data
                          Shared Queue
                      – Transactional




© 2006 Neward & Associates. All rights reserved.
This presentation is for informational purposes only.                                                                                   4
Neward & Associates




                                                                              Catalog                                                 Application

                  Tools                                                                       Now that we’ve identified these elements…
                      – General-purpose Languages
                           Strongly-typed: C#, Java, C++, C, Pascal, …                        … how do we use them?
                           Weakly-typed: Smalltalk, Jscript, Ruby, …
                                                                                                 – as elements to tease out during requirements analysis
                      – Problem-specific Languages
                           SQL, XQuery, XPath, XSLT, sed, awk, grep, VBA, games,                 – as elements to refer to during design
                           Workflow, …
                                                                                                 – as elements to think about during refactoring
                      – Code manipulation tools
                           IDEs, instrumentation, static analysis, debugger, …
                      –   Software Factories & DSLs
                      –   Code generators
                      –   Libraries/Frameworks
                      –   Data formats
                           XAML, XUL, HTML, resource files, …
                      – Documentation




                                                                           Summary                                                      Questions

                  Architecture is important: if it’s not defined explicitly, it
                     will be defined implicitly
                      – … and may not be something you’d like
                  Architecture represents a “higher level” perspective than
                     implementers typically think at, and therefore keeps
                     an eye on different issues
                  Architecture defines a “style” for the system, and as such
                     answers some questions even before they’re asked
                  Architecture, therefore, by its nature, is the definition of
                     the high-level picture of software that’s difficult to
                     refactor, and requires a bit more up-front thinking
                      – even in agile projects that want to embrace YAGNI
                                                                                                                       ?
                      – note it’s not impossible to refactor architecture… just hard




                                                                        Resources

                     Blogs
                      – Simon Guest, “Three Kinds of Architects”
                      – Joel on Software, by Joel Spolsky
                     Web
                      – http://www.bredemeyer.com/pdf_files/Presentations/
                        SoftwareArchitectureIntro.PDF
                     REST
                      – Architectural Styles and the Design of Network-based
                        Software Architectures (Roy Fielding, 2000, UC Irvine)
                      – RESTWiki:
                          http://internet.conveyor.org/RESTwiki/moin.cgi/ShortSummaryOfRest




© 2006 Neward & Associates. All rights reserved.
This presentation is for informational purposes only.                                                                                                      5

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Theory of design
Theory of designTheory of design
Theory of design
 
Architectural concepts
Architectural conceptsArchitectural concepts
Architectural concepts
 
Unit 2
Unit 2Unit 2
Unit 2
 
Lec 2 thematic theories
Lec 2 thematic theoriesLec 2 thematic theories
Lec 2 thematic theories
 
Visitors, Movement, and Circulation in Museums
Visitors, Movement, and Circulation in MuseumsVisitors, Movement, and Circulation in Museums
Visitors, Movement, and Circulation in Museums
 
Case Study : Art and craft exhibition complex omplex
Case Study : Art and craft exhibition complex omplexCase Study : Art and craft exhibition complex omplex
Case Study : Art and craft exhibition complex omplex
 
Residential Design Portfolio
Residential Design PortfolioResidential Design Portfolio
Residential Design Portfolio
 
150316 case studies
150316 case studies150316 case studies
150316 case studies
 
Theories of Architecture
Theories of ArchitectureTheories of Architecture
Theories of Architecture
 
TADAO ANDO - ARCHITECT OF LIGHT
TADAO ANDO - ARCHITECT OF LIGHTTADAO ANDO - ARCHITECT OF LIGHT
TADAO ANDO - ARCHITECT OF LIGHT
 
Perception in architecture
Perception in architecturePerception in architecture
Perception in architecture
 
Palace of assembly
Palace of assemblyPalace of assembly
Palace of assembly
 
Site analysis presentation
Site analysis presentationSite analysis presentation
Site analysis presentation
 
Circulation
CirculationCirculation
Circulation
 
Seattle library, washington
Seattle library, washingtonSeattle library, washington
Seattle library, washington
 
Philosophies of le corbusier
Philosophies of  le corbusierPhilosophies of  le corbusier
Philosophies of le corbusier
 
Charles correa
Charles correaCharles correa
Charles correa
 
Office case study
Office case studyOffice case study
Office case study
 
Architecture style
Architecture styleArchitecture style
Architecture style
 
Comparison between early christian and byzantine architecture
Comparison between early christian and byzantine architectureComparison between early christian and byzantine architecture
Comparison between early christian and byzantine architecture
 

Destacado

Theory of architecture
Theory of architectureTheory of architecture
Theory of architecture
Krishna Jhawar
 
Deutsche sprache
Deutsche  spracheDeutsche  sprache
Deutsche sprache
Anddel
 
Art Appreciation-Chapter13
Art Appreciation-Chapter13Art Appreciation-Chapter13
Art Appreciation-Chapter13
alorino
 
Art Appreciation-Chapter3
Art Appreciation-Chapter3Art Appreciation-Chapter3
Art Appreciation-Chapter3
alorino
 
03 architectural principles & elements
03 architectural principles & elements03 architectural principles & elements
03 architectural principles & elements
Jan Echiverri-Quintano
 

Destacado (17)

Pragmatic Architecture, Today.
Pragmatic Architecture, Today.Pragmatic Architecture, Today.
Pragmatic Architecture, Today.
 
Chapter Four Art Criticism
Chapter Four Art CriticismChapter Four Art Criticism
Chapter Four Art Criticism
 
Pragmatic Architecture, Today (v2)
Pragmatic Architecture, Today (v2)Pragmatic Architecture, Today (v2)
Pragmatic Architecture, Today (v2)
 
Theory of architecture
Theory of architectureTheory of architecture
Theory of architecture
 
Deutsche sprache
Deutsche  spracheDeutsche  sprache
Deutsche sprache
 
Art Appreciation-Chapter13
Art Appreciation-Chapter13Art Appreciation-Chapter13
Art Appreciation-Chapter13
 
Art Appreciation-Chapter3
Art Appreciation-Chapter3Art Appreciation-Chapter3
Art Appreciation-Chapter3
 
Architecture and Iasa Introduction
Architecture and Iasa IntroductionArchitecture and Iasa Introduction
Architecture and Iasa Introduction
 
Art appreciation
Art appreciationArt appreciation
Art appreciation
 
Elements of space making
Elements of space makingElements of space making
Elements of space making
 
Pragmatism Dewey
Pragmatism DeweyPragmatism Dewey
Pragmatism Dewey
 
Creating Agile Organizations by Combining Design, Architecture and Agile Thin...
Creating Agile Organizations by Combining Design, Architecture and Agile Thin...Creating Agile Organizations by Combining Design, Architecture and Agile Thin...
Creating Agile Organizations by Combining Design, Architecture and Agile Thin...
 
Primary elements of form
Primary elements of formPrimary elements of form
Primary elements of form
 
Aesthetics
AestheticsAesthetics
Aesthetics
 
Pragmatism Philosophy
Pragmatism PhilosophyPragmatism Philosophy
Pragmatism Philosophy
 
03 architectural principles & elements
03 architectural principles & elements03 architectural principles & elements
03 architectural principles & elements
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a Pragmatic Architecture

201006 its tutorial
201006 its tutorial201006 its tutorial
201006 its tutorial
Javier Gonzalez-Sanchez
 
Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?
ingo
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
bmercer
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
NASAPMC
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
NASAPMC
 

Similar a Pragmatic Architecture (20)

02archintro
02archintro02archintro
02archintro
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)
 
201006 its tutorial
201006 its tutorial201006 its tutorial
201006 its tutorial
 
Saf08 Growing Architects Kevin Francis
Saf08 Growing Architects   Kevin FrancisSaf08 Growing Architects   Kevin Francis
Saf08 Growing Architects Kevin Francis
 
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
 
Introdução à Arquitetura de Software
Introdução à Arquitetura de SoftwareIntrodução à Arquitetura de Software
Introdução à Arquitetura de Software
 
Democratising Software Architecture
Democratising Software ArchitectureDemocratising Software Architecture
Democratising Software Architecture
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software Architecture
 
Service-Oriented Architecture for Libraries
Service-Oriented Architecture for LibrariesService-Oriented Architecture for Libraries
Service-Oriented Architecture for Libraries
 
Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
 
Good code-isnt-enough
Good code-isnt-enoughGood code-isnt-enough
Good code-isnt-enough
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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...
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Pragmatic Architecture

  • 1. Neward & Associates Credentials Who is this guy? – Independent consultant, architect, mentor – Instructor, PluralSight (www.pluralsight.com) – BEA Technical Director, Microsoft MVP Architect Pragmatic Architecture – JSR 175, 250, 277 EG member – Founding Editor-in-Chief, TheServerSide.NET – Author • Effective Enterprise Java (Addison-Wesley, 2004) • Effective .NET (Forthcoming) Ted Neward • Pragmatic XML Services (Forthcoming) • Pragmatic .NET Project Automation (Forthcoming) Neward & Associates • Server-Based Java Programming (Manning, 2000) http://www.tedneward.com • C# in a Nutshell (OReilly, 2003) • SSCLI Essentials (w/Stutz, Shilling; OReilly, 2003) – Papers at http://www.tedneward.com – Weblog at http://blogs.tedneward.com Objectives Agenda So you wanna be an architect… High-level ruminations … but you’re not sure what architecture means what is architecture? what is a software architect? … but you’re not sure what an architect does why does anyone care? … but you don’t want to lose the respect of your Architectural catalog developer friends & teammates (who are convinced a look at a collection of architectural elements that “architect” is Latin for “cannot code anymore”) intended as a “starting point” for concrete architectural discussions Architecture does have a purpose Pragmatic approach (and it’s not to provide retirement for cut through the bull, talk shop: how do we architect? programmers!) what are we producing? what does it do for us? Architecture Architecture The Dark Side of the Architecture ar—chi—tec—ture [áarki tèkchәr] noun 1. building design: the art and science of designing “Why I Hate Frameworks” and constructing buildings http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 2. building style: a style or fashion of building, especially one that is typical of a period of history or “Architecture Astronauts” of a particular place http://www.joelonsoftware.com/articles/fog0000000018.html 3. structure of computer system: the design, structure, and behavior of a computer system, microprocessor, or system program, including the characteristics of individual components and how they Source: “Joel on Software” , Joel Spolsky interact © 2006 Neward & Associates. All rights reserved. This presentation is for informational purposes only. 1
  • 2. Neward & Associates Architecture Architecture What defines the difference Pragmatic Architecture? between these two buildings? – goals – scope – complexity “Pragmatism urges us to look to the – materials consequences of what we do, which the – process discipline of architecture, infused with an – … more idealistic focus on intentions, frequently More importantly, how do we know when one resists.” http://query.nytimes.com/gst/fullpage.html?res=9B0CE2DB103DF932A35751C1A9669C8B63 “style” of building is more appropriate than another? Architecture Architects What do we expect of a “good” architecture? So then… what is an architect? – the “ities”: Integrity, Simplicity, Reliability, Extensibility, Maintainability, Modularity, Recoverability, Composability, Parsimony, Scalability, Security, Performability1, Longevity, and so on… and so on… and so on… – make it easy for developers to make “right” decisions (where “right” => “right for this project or system”) in other words, enable “correctness by default” or, rather, have developers using our architecture "fall naturally into the pit of success" 1 I know “Performability” isn’t a word; unfortunately for us, the word “Performance” doesn’t end in “ity”. Architects Architects An architect is someone who … Architects … – … defines architecture – understand – … gets paid more than “real” developers do – reassess – … focuses on issues that have nothing to do with real- – explore world problems – … thinks in terms of clouds, not code – … speaks with big words and Powerpoint slides – … has no real idea what they’re doing and has management completely fooled to that fact © 2006 Neward & Associates. All rights reserved. This presentation is for informational purposes only. 2
  • 3. Neward & Associates Architects Architects Architects understand … Architects reassess … – goals – goals (go back to the “ities”) changing business climate changes goals – constraints – constraints Money changing business climate changes constraints Time – project’s progress against those goals Resources (developers, machines, etc) – project’s impact on the business Domain Abilities of the team members competitive advantage, users’ reactions, productivity, costs/benefits/ROI “A journey of a thousand miles always begins with a single step” --Ancient Chinese proverb “No plan ever survives first contact with the enemy” –Napoleon Bonaparte “A journey of a thousand miles doesn’t begin with a single step; it starts with the damn map” --Ted Neward Architects Architects Architects need to explore … The Three Kinds of Architects – new technologies – Infrastructure Architect “[responsible] for the design of the datacenter, – new methodologies deployment and maintenance of – new “isms” applications/services across the organization” – in short, determine the viability of new technologies – Enterprise Architect to fit the needs of current system(s) “concerned about the strategic vision of application and services within the organization” what changes would be necessary – Solution Architect prototype new technologies “responsible for the design of one or more analyze their impact within existing architecture applications or services within an organization, – NOTE: be careful of “The Coolness Trap” usually within the scope of a division” “cool” doesn’t mean “appropriate”… – (We’re talking mostly to the Solution Architect role) Source: “Three Kinds of Architects” , Simon Guest Architecture Catalog Patterns & architecture Technology-architectural decisions – isn’t architecture just judicious application of patterns? – is the jar full? – how about now? No—as it turns out, even in Alexander’s case directly, trying to use the patterns naïvely led to failure, not once, but twice – aren’t patterns in of themselves architecture? No—patterns help describe architectural elements, but they aren’t architecture in of themselves – so what do patterns do for us? Give us a lexicon, a glossary, by which to discuss systems at a higher-level of abstraction, so we can "Big" decisions will be about architecture constraints talk without getting bogged down in irrelevant Remaining decisions will create the tools your team uses details; that is, keep an appropriate level of scope for the forseeable future Source: http://www.bredemeyer.com/pdf_files/Presentations/SoftwareArchitectureIntro.PDF © 2006 Neward & Associates. All rights reserved. This presentation is for informational purposes only. 3
  • 4. Neward & Associates Catalog Catalog Architectural Elements Communication/Distribution – Communication/Distribution – Transport – Presentation/Interaction Over what medium does the communication travel? Examples: TCP, UDP, ICMP, HTTP, named pipes, – State Management filesystem, queues, and more … – Processing – Exchange – Resource Management How do we interact? – Tools Examples: request/response, solicit-notify, async, fire-and-forget, and more … – Format In what format does the data travel? Examples: XML, code, text, JSON, raw binary, serialized objects, and more … Catalog Catalog Presentation/Interaction State Management – style – Durable vs. Transient State Graphical state held across processing steps vs Console state held during processing None – Relational vs. Object vs. Hierarchical – implementation what is the “shape” of the data? Markup (HTML, Acrobat) – Context-based vs. Process-based state Code (WinForms, Flash) where is the transient state held? – perspectives User, Administrative, Reported, … – composite Aggregates multiple applications into one Based around a single style Catalog Catalog Processing Resource Management – Implementation – Locator/Registry Procedural/Imperative – Discovery Classes/Objects Declarative – Injected Rules – Concurrent/Parallel (SISD, SIMD, MISD, MIMD) – A priori Knowledge Divide and Conquer Recursive Data Pipeline/Pipes-and-Filters Event-based Coordination Master/Slave, Fork/Join Shared Data Shared Queue – Transactional © 2006 Neward & Associates. All rights reserved. This presentation is for informational purposes only. 4
  • 5. Neward & Associates Catalog Application Tools Now that we’ve identified these elements… – General-purpose Languages Strongly-typed: C#, Java, C++, C, Pascal, … … how do we use them? Weakly-typed: Smalltalk, Jscript, Ruby, … – as elements to tease out during requirements analysis – Problem-specific Languages SQL, XQuery, XPath, XSLT, sed, awk, grep, VBA, games, – as elements to refer to during design Workflow, … – as elements to think about during refactoring – Code manipulation tools IDEs, instrumentation, static analysis, debugger, … – Software Factories & DSLs – Code generators – Libraries/Frameworks – Data formats XAML, XUL, HTML, resource files, … – Documentation Summary Questions Architecture is important: if it’s not defined explicitly, it will be defined implicitly – … and may not be something you’d like Architecture represents a “higher level” perspective than implementers typically think at, and therefore keeps an eye on different issues Architecture defines a “style” for the system, and as such answers some questions even before they’re asked Architecture, therefore, by its nature, is the definition of the high-level picture of software that’s difficult to refactor, and requires a bit more up-front thinking – even in agile projects that want to embrace YAGNI ? – note it’s not impossible to refactor architecture… just hard Resources Blogs – Simon Guest, “Three Kinds of Architects” – Joel on Software, by Joel Spolsky Web – http://www.bredemeyer.com/pdf_files/Presentations/ SoftwareArchitectureIntro.PDF REST – Architectural Styles and the Design of Network-based Software Architectures (Roy Fielding, 2000, UC Irvine) – RESTWiki: http://internet.conveyor.org/RESTwiki/moin.cgi/ShortSummaryOfRest © 2006 Neward & Associates. All rights reserved. This presentation is for informational purposes only. 5