The Zero Bullshit Architecture
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

The Zero Bullshit Architecture

on

  • 12,800 views

Lars Trieloff's presentation "The Zero Bullshit Architecture" on how not to design your enterprise content centric application. (And tips on how to do it better)

Lars Trieloff's presentation "The Zero Bullshit Architecture" on how not to design your enterprise content centric application. (And tips on how to do it better)

Statistics

Views

Total Views
12,800
Views on SlideShare
12,430
Embed Views
370

Actions

Likes
13
Downloads
300
Comments
4

7 Embeds 370

http://dev.day.com 324
http://www.slideshare.net 25
http://www.techgig.com 14
http://feeds.feedburner.com 2
http://safe.tumblr.com 2
http://web.archive.org 2
https://twitter.com 1
More...

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…
  • Sorry, but I have to call bullshit. If your needs are exactly aligned with the capabilities of JCR, then great. But since hierarchical models aren't the answer to everything, those layers you despise will eventually come back into the diagram as the requirements exceed anything trivial.

    Day software would be doing itself a favor by painting a clear picture of scenarios that JCR is actually ideal for versus claiming a one size fits all solution. I fear that in your world we'll see JCR being used completely inappropriately.
    Are you sure you want to
    Your message goes here
    Processing…
  • Good and true one, I love it :o)
    Is there a video of the conf somewhere ?
    Are you sure you want to
    Your message goes here
    Processing…
  • Great, think first, it is the most important :)
    Are you sure you want to
    Your message goes here
    Processing…
  • Great presentation!
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

The Zero Bullshit Architecture Presentation Transcript

  • 1. The Zero Bullshit Architecture Day Business & Tech Summit Chicago, May 2008 Lars Trieloff, Product Manager 1
  • 2. Before I start “ One of the most salient features of our culture is that ” there is so much bullshit. —Prof. Harry G. Frankfurt 2
  • 3. Hello, my name is Lars Trieloff ! Product Manager Collaboration and Digital Asset Management ! With Day since November 2007 ! Background: ! Open Source Software Development ! Collaboration Software ! Technical Documentation (DocBook) ! Blogging ! IT Systems Engineering 3
  • 4. Hello, my name is Lars Trieloff ! Product Manager Collaboration and Digital Asset Management Product ! With Day ManagNovember 2007 since ement Department of “n:o ! Background: t yet” ! Open Source Software Development ! Collaboration Software ! Technical Documentation (DocBook) ! Blogging ! IT Systems Engineering 3
  • 5. Goal Review 4
  • 6. Goal Review We want to build web applications 4
  • 7. Goal Review We want to build web applications to deliver value to our users 4
  • 8. Goal Review We want to build web applications to deliver value to our users web applications that allow integration 4
  • 9. Goal Review We want to build web applications to deliver value to our users web applications that allow integration and enable personalization 4
  • 10. Goal Review We want to build web applications to deliver value to our users web applications that allow integration and enable personalization that establish new communication channels 4
  • 11. Goal Review We want to build web applications to deliver value to our users web applications that allow integration and enable personalization that establish new communication channels , increase usability 4
  • 12. Goal Review We want to build web applications to deliver value to our users web applications that allow integration and enable personalization that establish new communication channels , increase usability and scale to large amounts of users and content 4
  • 13. Goal Review We want to build web applications to deliver value to our users web applications that allow integration and enable personalization that establish new communication channels , increase usability and scale to large amounts of users and content within limited time & budget. 4
  • 14. Sounds easy, but May you have interesting software projects 5
  • 15. Sounds easy, but Why do so many soft ware projects end up becoming interesting? May you have interesting software projects 5
  • 16. Where do projects become interesting? 6
  • 17. Where do projects become interesting? Requirements 6
  • 18. Where do projects become interesting? Concept Requirements 6
  • 19. Where do projects become interesting? Architecture Concept Requirements 6
  • 20. Where do projects become interesting? Implementation Architecture Concept Requirements 6
  • 21. Where do projects become interesting? Operations Implementation Architecture Concept Requirements 6
  • 22. Where do projects become interesting? Operations Implementation Architecture Concept $$ $$ $ $$ $ Requirements 6
  • 23. Where do projects become interesting? Operations Implementation Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  • 24. Where do projects become interesting? Operations $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  • 25. Where do projects become interesting? Operations $ $ $$ $ $$ $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  • 26. Where do projects become $ interesting? $$ $ $ $$ $ $ $ $$ $ $$ $$ $ $ $ $ $ $ $$ $ $ $ Operations $ $ $$ $ $$ $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  • 27. Where do projects become $ interesting? $$ $ $ $$ $ $ $ $$ $ $$ $$ $ $ $ $ $ $ $$ $ $ $ Operations $ $ $$ $ $$ $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  • 28. Architectural Failure ! Results of Architectural Failure ! Implementation and Operation too expensive ! Implementation too heavyweight, needs to much expensive resources ! Implementation not scalable, scaling becomes expensive ! Implementation not flexible, implementing new features becomes expensive ! System Components do not fit, integration becomes expensive 7
  • 29. Architectural Failure ! Results of Architectural Failure ! Implementation and Operation too expensive ! Implementation too heavyweight, needs to much expensive resources ! Implementation not scalable, scaling becomes expensive ! Implementation not flexible, implementing new features becomes expensive ! System Components do not fit, integration becomes expensive You can fix everything later on, if you pay for it 7
  • 30. Why does Architectural Failure happen? 8
  • 31. Why does Architectural Failure happen? “Nob od y go t fired fo r bu y ing IBM” 8
  • 32. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t g o t fire drf o r fired fo b u y ing buic ro s oIBM” M y ing f t ” 8
  • 33. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t “ We h ave g o t fire drf o r fired fo be e n do i ng i t b u y ing t h is way buic ro s oIBM” M y ing f t ” f o re ve r ” 8
  • 34. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t “ We h ave g o t fire drf o r fired fo be e n do i ng i t b u y ing t h is way buic ro s oIBM” M y ing f t ” f o re ve r ” “ L e t ’s us e R uby o n R a il s, e ve r y b o d y is t a lk ing a b o u t it.” 8
  • 35. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t “ We h ave g o t fire drf o r fired fo be e n do i ng i t b u y ing t h is way buic ro s oIBM” M y ing f t ” f o re ve r ” “ L e t ’s us e R uby o n R a il s, “H o w w i l l e ve r y b o d y is EJ B 3.0 lo o k t a lk ing a b o u t on my it.” re s ume? ” 8
  • 36. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t “ We h ave g o t fire drf o r fired fo be e n do i ng i t b u y ing t h is way buic ro s oIBM” M y ing f t ” f o re ve r ” “ L e t ’s us e “I do n o t nee d R uby o n R a il s, “H o w w i l l n o ca p aci ty e ve r y b o d y is EJ B 3.0 lo o k p la n n ing . I am t a lk ing a b o u t on my us ing a sc a la ble it.” re s ume? ” la ngu age .” 8
  • 37. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t “ We h ave g o t fire drf o r fired fo be e n do i ng i t b u y ing t h is way buic ro s oIBM” M y ing f t ” f o re ve r ” “ L e t ’s us e “I do n o t nee d R uby o n R a il s, “H o w w i l l n o ca p aci ty e ve r y b o d y is EJ B 3.0 lo o k p la n n ing . I am t a lk ing a b o u t on my us ing a sc a la ble it.” re s ume? ” la ngu age .” 8
  • 38. Why does Architectural Failure happen? “ No b o d y ego r “Nob od y ve t “ We h ave Result: Bulls**t g o t fire drf o r fired fo b u y ing buic ro s oIBM” M y ing f t ” be e n do i ng i t t h is way f o re ve r ” Architecture “ L e t ’s us e “H o w w i l l “I do n o t nee d R uby o n R a il s, n o ca p aci ty e ve r y b o d y is EJ B 3.0 lo o k p la n n ing . I am t a lk ing a b o u t on my us ing a sc a la ble it.” re s ume? ” la ngu age .” 8
  • 39. Fighting Bullshit Architecture by Example 9
  • 40. Fighting Bullshit Architecture by Example MySQL 9
  • 41. Fighting Bullshit Architecture by Example Hibernate MySQL 9
  • 42. Fighting Bullshit Architecture by Example Hibernate SQL Server MySQL 9
  • 43. Fighting Bullshit Architecture by Example Hibernate ADO.NET SQL Server MySQL 9
  • 44. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET SQL Server MySQL 9
  • 45. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET SQL Server MySQL Oracle 9
  • 46. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET EJB 3.0 SQL Server MySQL Oracle 9
  • 47. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET EJB 3.0 Lucene SQL Server MySQL Oracle Index 9
  • 48. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate Custom ADO.NET EJB 3.0 Crawler Lucene SQL Server MySQL Oracle Index 9
  • 49. Fighting Bullshit Architecture by Example SOAP Spring Webflow Bridge Hibernate Custom ADO.NET EJB 3.0 Crawler Lucene SQL Server MySQL Oracle Index 9
  • 50. Fighting Bullshit Architecture by Example JSF SOAP Spring Webflow Bridge Hibernate Custom ADO.NET EJB 3.0 Crawler Lucene SQL Server MySQL Oracle Index 9
  • 51. Fighting Bullshit Architecture by Example JSF Flash SOAP Spring Webflow Bridge Hibernate Custom ADO.NET EJB 3.0 Crawler Lucene SQL Server MySQL Oracle Index 9
  • 52. Fighting Bullshit Architecture by Example JSF Flash SOAP Spring Webflow Bridge Hibernate Custom ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 9
  • 53. Fighting Bullshit Architecture by Example JSF Flash SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 9
  • 54. Fighting Bullshit Architecture by Example JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 9
  • 55. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 9
  • 56. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene Directory SQL Server MySQL MySQL Oracle Index 9
  • 57. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active MySQL Lucene Directory SQL Server MySQ MySQL Oracle Index 9
  • 58. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active MySQL Lucene Directory SQL Server MySQ MySQL Oracle Oracle Index 9
  • 59. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active MySQL Lucene Directory SQL Server MySQ MySQL Oracle Oracle Oracle Index 9
  • 60. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active MySQL Lucene Directory SQL Server SQL Server MySQ MySQL Oracle Oracle Oracle Index 9
  • 61. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 9
  • 62. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 9
  • 63. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 9
  • 64. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP SOAP Bridge Spring Webflow Bridge Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 9
  • 65. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP SOAP Bridge Spring Webflow Bridge Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 9
  • 66. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP SOAP Bridge Bridge Spring Webflow Spring Webflow Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 9
  • 67. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP SOAP Bridge Bridge Spring Webflow Spring Webflow Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 10
  • 68. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP SOAP Bridge Bridge Spring Webflow Spring Webflow Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 10
  • 69. Fighting Bullshit Architecture by Example Can we please Portal create an AIR app to NTLM JSF Flash get it to the SOAP SOAP Bridge Bridge Spring Webflow Spring Webflow Hibernate Hibernate desktop? Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 10
  • 70. Fighting Bullshit Architecture by Example Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 11
  • 71. Fighting Bullshit Architecture by Example Wait, I have some Portal questions NTLM JSF Flash SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 11
  • 72. Where is our data stored? Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 12
  • 73. And where is our content? I cannot see it. Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 13
  • 74. This is a n-tier architecture. But how many layers are there? Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 14
  • 75. Where is the frontend? And who controls the application? Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 15
  • 76. How does this scale? And why should it scale? Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 16
  • 77. Let me extend this: DB migration, EJB annotation, POJO definition, Spring XML, ... Portal JSF Flash NTLM SOAP Spring Webflow Bridge Hibernate Custom Kerberos ADO.NET EJB 3.0 Crawler Active Lucene SQL Server MySQL Oracle Directory Index 17
  • 78. Building an alternative 18
  • 79. Building an alternative CRX (+Connectors) 18
  • 80. Best of both worlds data base fil es yste m hier- integ archi rity structure es read streams tx query write locking access control multi- value un- ning structured “full- obser- versio text” sort vation order content reposit or y 19
  • 81. Building an alternative CRX (+Connectors) 20
  • 82. Building an alternative Apache Sling CRX (+Connectors) 20
  • 83. Building an alternative OSGi Apache Sling CRX (+Connectors) 20
  • 84. Building an alternative OSGi Scripting Apache Sling CRX (+Connectors) 20
  • 85. Building an alternative OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  • 86. Building an alternative Web Browser (Frontend Runtime) OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  • 87. Building an alternative Web Browser (Frontend Runtime) Widgets OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  • 88. Building an alternative Web Browser (Frontend Runtime) Widgets Gadgets OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  • 89. Building an alternative Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  • 90. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 21
  • 91. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 21
  • 92. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS JS OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 21
  • 93. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS JS JS OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 21
  • 94. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS JS JS OSGi Scripting O/C Mapping Java Apache Sling CRX (+Connectors) 21
  • 95. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS JS JS OSGi Scripting O/C Mapping Java JSP Apache Sling CRX (+Connectors) 21
  • 96. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS JS JS OSGi Scripting O/C Mapping Java JSP JS Apache Sling CRX (+Connectors) 21
  • 97. Comparing approaches - Languages Portal JSF Flash NTLM SOAP SOAP Bridge Bridge Spring Webflow Spring Webflow Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 22
  • 98. Comparing approaches - Interfaces Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 23
  • 99. Comparing approaches - Interfaces Portal JSF Flash NTLM SOAP SOAP Bridge Bridge Spring Webflow Spring Webflow Hibernate Hibernate Custom Kerberos ADO.NET ADO.NET EJB 3.0 EJB 3.0 Crawler Active SQL Ser ver er MySQL Lucene Directory SQL Server SQL MySQ MySQL Oracle Oracle Oracle Index 24
  • 100. Building an alternative Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 25
  • 101. Building an alternative Web Browser (Frontend Runtime) If you need a Widgets Gadgets Sling.js desktop client: try Prism & Fluid OSGi Scripting Apache Sling O/C Mapping CRX (+Connectors) 25
  • 102. 1 Don’t bullshit 26
  • 103. 1 Don’t bullshit 2 think before you act 26
  • 104. 1 Don’t bullshit 2 think before you act 3 consider CRX 26
  • 105. Thank you Learn more at www.day.com or ask lars.trieloff@day.com 27