Más contenido relacionado La actualidad más candente (20) Similar a Pragmatic Architecture (20) Pragmatic Architecture1. 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