• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Day: Open Development

on

  • 1,055 views

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 ...

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

Statistics

Views

Total Views
1,055
Views on SlideShare
1,054
Embed Views
1

Actions

Likes
0
Downloads
27
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Day: Open Development Day: Open Development Presentation Transcript

    • Monday, October 18, 2010
    • Open Development Roy T. Fielding, Ph.D. Chief Scientist, Day Software Monday, October 18, 2010
    • OPEN SOURCE 3 Monday, October 18, 2010
    • OPEN OPEN SOURCE STANDARDS JCR HTTP JSOP HTML URI CMIS URI Templates 4 Monday, October 18, 2010
    • OPEN OPEN SOURCE STANDARDS REST OSGi OPEN ARCHITECTURE 5 Monday, October 18, 2010
    • It’s all about Collaboration Monday, October 18, 2010
    • Collaboration but how? Monday, October 18, 2010
    • Effective Collaboration ✴ (One) Shared Goal ✴ Agree how to disagree & decide ✴ Shared Workspace ✴ Dynamic Awareness ✴ Parallelization Monday, October 18, 2010
    • OPEN OPEN SOURCE STANDARDS OPEN ARCHITECTURE 9 Monday, October 18, 2010
    • 10 Open Architecture ? Not talking about open exoskeleton buildings Monday, October 18, 2010
    • Not talking about 11 Open Architecture ? Open Sourced Architecture Monday, October 18, 2010
    • 12 Open Architecture ? Not even talking about personal computer open architecture Monday, October 18, 2010
    • 13 Open Architecture ? Mainly talking about design for open systems versus Monday, October 18, 2010
    • 14 Why talk about Open Architecture? 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? 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 Why talk about Open Architecture? Open Development + Conway’s Law 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! Monday, October 18, 2010
    • 17 Why talk about Open Architecture? Open Development + Conway’s Law + Change is inevitable! Decentralized Software Evolution (or rapid obsolescence) Monday, October 18, 2010
    • 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! 20 August 2010 18 Monday, October 18, 2010
    • 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
    • Closed Source Examples ✴ Adobe Monday, October 18, 2010
    • Closed Source Examples ✴ Apple iPhone Ecosystem Monday, October 18, 2010
    • 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
    • Apache httpd: modules Modules • simplify core • enable independent development • promote experiments Project improves • reduced friction • anarchic growth • more features • less communication [Apache Modeling Project, f-m-c.org] 23 Monday, October 18, 2010
    • Apache httpd: I/O filters Filters provide more extensibility • protocol replacement • httpd, ftpd, nntpd, … • stackable content manipulation • extensions that can extend other extensions [Apache Modeling Project, f-m-c.org] 24 Monday, October 18, 2010
    • 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] 25 Monday, October 18, 2010
    • Mozilla Firefox Open Source Extensible Architecture Plug-in Tools Layered CSS Editor Platform 26 Monday, October 18, 2010
    • World Wide Web Project Information Browsers next table of contents elements attributes index Network Working Group R. Fielding Request for Comments: 2068 UC Irvine Category: Standards Track J. Gettys J. C. Mogul DEC H. Frystyk T. Berners-Lee HTML 4.01 Specification MIT/LCS January 1997 W3C Recommendation 24 December 1999 This version: http://www.w3.org/TR/1999/REC-html401-19991224 (plain text [794Kb], gzip'ed tar archive of HTML files [371Kb], a .zip archive of HTML files [405Kb], gzip'ed Postscript file [746Kb, 389 pages], gzip'ed PDF file [963Kb]) Hypertext Transfer Protocol -- HTTP/1.1 Latest version of HTML 4.01: http://www.w3.org/TR/html401 Latest version of HTML 4: Status of this Memo http://www.w3.org/TR/html4 This document specifies an Internet standards track protocol for the Internet community, and requests Latest version of HTML: http://www.w3.org/TR/html discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Previous version of HTML 4.01: Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this Network Working Group T. Berners-Lee memo is unlimited. http://www.w3.org/TR/1999/PR-html40-19990824 Previous HTML 4 Recommendation: Request for Comments: 3986 W3C/MIT Obsoletes: 2732, 2396, 1808 R. Fielding http://www.w3.org/TR/1998/REC-html40-19980424 Editors: STD: 66 Abstract Day Software Dave Raggett <dsr@w3.org> Updates: 1738 L. Masinter The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, Arnaud Le Hors, W3C Category: Standards Track Adobe Systems Ian Jacobs, W3C hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for many tasks, such January 2005 and distributed object management systems, through extension of its as name servers Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems and software licensing rules apply. to be built independently of the data being transferred. Uniform Resource Identifier (URI):by the World-Wide Web global information initiative since 1990. This specification HTTP has been in use Abstract Generic Syntax the protocol referred to as “HTTP/1.1”. defines This specification defines the HyperText Markup Language (HTML), the publishing language of the Status of this Memo World Wide Web. This specification defines HTML 4.01, which is a subversion of HTML 4. In addition to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, This document specifies an Internet standards track protocol for the Internet community, scripting languages, style sheets, better printing facilities, and documents that are more accessible to users with disabilities. and suggestions for improvements. Please refer to the current and requests discussion HTML 4 also takes great strides towards the internationalization of documents, withthe “Internet Official Protocol Standards” (STD 1) for the standardization state edition of the goal of making the Web truly World Wide. and status of this protocol. Distribution of this memo is unlimited. Copyright Notice HTML 4 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language [ISO8879]. Copyright © The Internet Society (2005). All Rights Reserved. Status of this document Abstract Protocols A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. 27 Monday, October 18, 2010
    • Web Implementation Intermediary Proxy Cache User Agents Webservers/Gateways Application Servers Accelerator Cache Dynamic Content Centralized Data RDBMS, NFS, SAN 28 Monday, October 18, 2010
    • Web Architecture User Agents $ $ $ Proxies Gateways Origin Servers $ $ $ $ $ 29 Monday, October 18, 2010
    • Web Architecture next table of contents elements attributes index Network Working Group R. Fielding Request for Comments: 2068 UC Irvine Category: Standards Track J. Gettys J. C. Mogul DEC H. Frystyk T. Berners-Lee HTML 4.01 Specification MIT/LCS January 1997 W3C Recommendation 24 December 1999 This version: http://www.w3.org/TR/1999/REC-html401-19991224 (plain text [794Kb], gzip'ed tar archive of HTML files [371Kb], a .zip archive of HTML files [405Kb], gzip'ed Postscript file [746Kb, 389 pages], gzip'ed PDF file [963Kb]) Hypertext Transfer Protocol -- HTTP/1.1 Latest version of HTML 4.01: http://www.w3.org/TR/html401 Latest version of HTML 4: Status of this Memo http://www.w3.org/TR/html4 This document specifies an Internet standards track protocol for the Internet community, and requests Latest version of HTML: http://www.w3.org/TR/html discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Previous version of HTML 4.01: Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this Network Working Group T. Berners-Lee memo is unlimited. http://www.w3.org/TR/1999/PR-html40-19990824 Previous HTML 4 Recommendation: Request for Comments: 3986 W3C/MIT Obsoletes: 2732, 2396, 1808 R. Fielding http://www.w3.org/TR/1998/REC-html40-19980424 Editors: STD: 66 Abstract Day Software Dave Raggett <dsr@w3.org> Updates: 1738 L. Masinter The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, Arnaud Le Hors, W3C Category: Standards Track Adobe Systems Ian Jacobs, W3C hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for many tasks, such January 2005 and distributed object management systems, through extension of its as name servers Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems and software licensing rules apply. to be built independently of the data being transferred. Uniform Resource Identifier (URI):by the World-Wide Web global information initiative since 1990. This specification HTTP has been in use Abstract Generic Syntax the protocol referred to as “HTTP/1.1”. defines This specification defines the HyperText Markup Language (HTML), the publishing language of the Status of this Memo World Wide Web. This specification defines HTML 4.01, which is a subversion of HTML 4. In addition to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, This document specifies an Internet standards track protocol for the Internet community, scripting languages, style sheets, better printing facilities, and documents that are more accessible to users with disabilities. and suggestions for improvements. Please refer to the current and requests discussion HTML 4 also takes great strides towards the internationalization of documents, withthe “Internet Official Protocol Standards” (STD 1) for the standardization state edition of the goal of making the Web truly World Wide. and status of this protocol. Distribution of this memo is unlimited. Copyright Notice HTML 4 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language [ISO8879]. Copyright © The Internet Society (2005). All Rights Reserved. Status of this document Abstract Protocols A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. 30 Monday, October 18, 2010
    • It’s all about Architecting for Open Development 31 Monday, October 18, 2010
    • Architectural Styles Ionic Order 32 Monday, October 18, 2010
    • Architectural Styles 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 33 Monday, October 18, 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 20 August 2010 34 Monday, October 18, 2010
    • REST on a slide pro layered replicated gra mm uniform interface abl separated e RR CS LS VM U i nt pr erme on-demand stateless oc d es iat mobile simple sin e g visible $ CSS LCS COD reliable shared extensible reusable cacheable scalable multi- C$SS LC$SS org. LCODC$SS REST Figure 5-9. REST Derivation by Style Constraints the disadvantages) of the optional constraints when they are known to be in effect for some 35 Monday, October 18, 2010
    • Monday, October 18, 2010
    • Monday, October 18, 2010
    • Monday, October 18, 2010
    • Eclipse Platform Taking modular extensibility to the next level OSGi [Birsan, ACM Queue, Mar 2005] 39 Monday, October 18, 2010
    • Eclipse Platform 40 Monday, October 18, 2010
    • Eclipse Platform 41 Monday, October 18, 2010
    • Apache Sling D rop-in lity jsp JCR backed Ex tensib i using undles groovy Content-oriented O SGi B ... esp + WebDAV-able scala ruby REST-based OSGi REST 42 Monday, October 18, 2010
    • OPEN OPEN SOURCE STANDARDS REST OSGi OPEN ARCHITECTURE 43 Monday, October 18, 2010
    • Standards OPEN OPEN SOURCE STANDARDS JCR HTTP JSOP HTML URI CMIS URI Templates 44 Monday, October 18, 2010
    • OPEN SOURCE 45 Monday, October 18, 2010
    • The ASF in 2010 84 projects (+ 36 incubating) 3 TB/day www traffic ASF members: 330 > 2359 committers No offices almost no f2f meetings Hundreds of releases all decisions on mailing lists Monday, October 18, 2010
    • Apache Decisions +1 Monday, October 18, 2010
    • Shared workspace mailing lists + archives blogs IRC Wikis revision control system automated builds httpd (of course) issue tracker Monday, October 18, 2010
    • Dynamic Awareness Monday, October 18, 2010
    • Traditional Feedback code user How fast is your loop? developer Days? Weeks? manager feedback Monday, October 18, 2010
    • Communication OD ? ? ? ? or ? ? ? ? Mess Media? Central Hub oral tradition? permanent record Monday, October 18, 2010
    • Real-time updates code tests email events issues subscriptions RSS feeds decisions hub! bo ration Colla Monday, October 18, 2010
    • 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
    • Effective Collaboration ✴ (One) Shared Goal ✴ Agree how to disagree & decide ✴ Shared Workspace ✴ Dynamic Awareness ✴ Parallelization Monday, October 18, 2010
    • alexkli, angela, dpfister, fielding [*], fmeschbe, jukka, mreutegg, ppiegaze, stefan, tripod, uncled bdelacretaz [*], cziegeler, fmeschbe Committers, PMC members and mentors on these projects, and others [*] member of the Board of Directors Monday, October 18, 2010
    • What does Day get? Great infrastructure software, Many eyeballs. Industry recognition (+ JSR-170) Credibility with world-class people The Open Development Way of Working (works inside the company as well) Contacts. Networks. Ideas. Monday, October 18, 2010
    • dev@httpd.apache.org OPEN SOURCE dev@jackrabbit.apache.org dev@sling.apache.org dev@felix.apache.org 57 Monday, October 18, 2010