Day's R&D philosophy is designed to leverage open development through leadership in a triad of infrastructure innovation: open source, open standards, and open architecture. This talk
is about how open development works, the science behind our approach, and why it provides long-term benefits for our products, our customers, and our growth as a company.
Roy Fielding, Chief Scientist, Day Software
14. Why talk about Open Architecture?
14
Open Development
Collaborative open source development
> emphasizes community
> takes advantage of the scalability
obtainable through Internet-based
virtual organizations
> adapts to the volunteer nature of
developers
Monday, October 18, 2010
15. Why talk about Open Architecture?
15
Open Development
+
Conway’s Law
Any organization that designs a system
(defined broadly) will produce a design
whose structure is a copy of the
organization's communication structure.
Melvin E. Conway, Datamation, April 1968
http://www.melconway.com/law/
index.html
Monday, October 18, 2010
16. True open development
(a.k.a, Community-driven Design)
will only occur when the design of
your system reflects the organizational
structure of open development!
Why talk about Open Architecture?
16
Open Development
+
Conway’s Law
Monday, October 18, 2010
17. Why talk about Open Architecture?
17
Open Development
+
Conway’s Law
+
Change is inevitable!
Decentralized Software Evolution
(or rapid obsolescence)
Monday, October 18, 2010
18. 20 August 2010 18
Decentralized Software Evolution
Requires Architecture by Design
open (software) architecture
used by open development projects
to enable decentralized software evolution
so that others can continue to design the software
and fulfill Conway’s Law
leading to success over time!
Monday, October 18, 2010
19. Challenges
✴ Trade-off: Adaptability vs Consistency
✴ what changes are possible?
✴ what assurances are provided?
✴ Where to place the open points
✴ behavioral junctions (APIs, callback hooks)
✴ virtual machines (command tables, scripting)
✴ data flow (filters, plug-ins)
Monday, October 18, 2010
22. Open Source Examples
✴ What is common to all of the largest
and most successful open source
projects?
✴ a software architecture
✴ designed to promote anarchic collaboration
✴ through extensions
✴ while preserving control over the core interfaces
Monday, October 18, 2010
23. 23
Apache httpd: modules
[Apache Modeling Project, f-m-c.org]
Modules
• simplify core
• enable
independent
development
• promote
experiments
Project improves
• reduced friction
• anarchic growth
• more features
• less communication
Monday, October 18, 2010
24. 24
Apache httpd: I/O filters
[Apache Modeling Project, f-m-c.org]
Filters provide more extensibility
• protocol replacement
• httpd, ftpd, nntpd, …
• stackable content manipulation
• extensions that can extend other extensions
Monday, October 18, 2010
25. 25
Linux Kernel Modules
Modules
• simplify core
• enable
independent
development
• promote
experiments
Project improves
• reduced friction
• anarchic growth
• more features
• less communication
[diagram from Ivan T. Bowman, 1998]
Monday, October 18, 2010
33. A horizontal abstraction on architecture
‣ a way of naming architectural patterns in implementation
An architectural style is a set of constraints
‣ unfortunately, constraints are hard to visualize
kind of like gravity or electromagnetism
observed only by their effect on others
‣ and style constraints are voluntary
there are no architecture police, but there are many architecture critics
Constraints induce architectural properties
‣ both desirable and undesirable properties
a.k.a., software qualities and design trade-offs
20 August 2010
Architectural Styles
33
Monday, October 18, 2010
34. 20 August 2010
Representational State Transfer
The REST architectural style is
1 a model of ideal Web application behavior
2 a guide for optimizing Web architecture
3 a pattern for communicating
‣ architectural constraints
‣ induced properties
‣ resulting trade-offs
4 a new software industry buzzword
34
Monday, October 18, 2010
35. REST on a slide
the disadvantages) of the optional constraints when they are known to be in effect for some
Figure 5-9. REST Derivation by Style Constraints
RR CS LS VM U
CSS LCS COD$
C$SS LC$SS LCODC$SS REST
replicated
on-demand
separated
layered
mobile
uniform interface
stateless
shared
intermediate
processing
cacheable
extensible
simple
reusable
scalable
reliable
multi-
org.
visible
programmable
35
Monday, October 18, 2010
46. The ASF in 2010
> 2359 committers
84 projects (+ 36 incubating)
No offices
almost no f2f meetings
all decisions on mailing listsHundreds of releases
ASF members: 330
3 TB/day www traffic
Monday, October 18, 2010
53. Real-time updates
Source code control system instead
of “code on the fileserver”.
Issue tracker events instead of
“what did you do today”?
Mailing list “events” instead of
“yell around the office”.
Automated builds instead of
“wait for Bob to build it on Linux”.
Monday, October 18, 2010
54. Effective Collaboration
✴ (One) Shared Goal
✴ Agree how to
disagree & decide
✴ Shared Workspace
✴ Dynamic Awareness
✴ Parallelization
Monday, October 18, 2010
55. alexkli, angela, dpfister, fielding [*], fmeschbe,
jukka, mreutegg, ppiegaze, stefan, tripod, uncled
bdelacretaz [*], cziegeler, fmeschbe
[*] member of the Board of Directors
Committers, PMC members and mentors on these projects, and others
Monday, October 18, 2010
56. What does Day get?
Industry recognition (+ JSR-170)
Credibility with world-class people
The Open Development Way of Working
(works inside the company as well)
Contacts. Networks. Ideas.
Great infrastructure software, Many eyeballs.
Monday, October 18, 2010