The Zero Bullshit Architecture

11,551 views
11,372 views

Published on

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)

Published in: Technology, Education
4 Comments
16 Likes
Statistics
Notes
  • 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.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Good and true one, I love it :o)
    Is there a video of the conf somewhere ?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Great, think first, it is the most important :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Great presentation!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
11,551
On SlideShare
0
From Embeds
0
Number of Embeds
225
Actions
Shares
0
Downloads
316
Comments
4
Likes
16
Embeds 0
No embeds

No notes for slide

The Zero Bullshit Architecture

  1. 1. The Zero Bullshit Architecture Day Business & Tech Summit Chicago, May 2008 Lars Trieloff, Product Manager 1
  2. 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. 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. 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. 5. Goal Review 4
  6. 6. Goal Review We want to build web applications 4
  7. 7. Goal Review We want to build web applications to deliver value to our users 4
  8. 8. Goal Review We want to build web applications to deliver value to our users web applications that allow integration 4
  9. 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. 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. 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. 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. 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. 14. Sounds easy, but May you have interesting software projects 5
  15. 15. Sounds easy, but Why do so many soft ware projects end up becoming interesting? May you have interesting software projects 5
  16. 16. Where do projects become interesting? 6
  17. 17. Where do projects become interesting? Requirements 6
  18. 18. Where do projects become interesting? Concept Requirements 6
  19. 19. Where do projects become interesting? Architecture Concept Requirements 6
  20. 20. Where do projects become interesting? Implementation Architecture Concept Requirements 6
  21. 21. Where do projects become interesting? Operations Implementation Architecture Concept Requirements 6
  22. 22. Where do projects become interesting? Operations Implementation Architecture Concept $$ $$ $ $$ $ Requirements 6
  23. 23. Where do projects become interesting? Operations Implementation Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  24. 24. Where do projects become interesting? Operations $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  25. 25. Where do projects become interesting? Operations $ $ $$ $ $$ $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  26. 26. Where do projects become $ interesting? $$ $ $ $$ $ $ $ $$ $ $$ $$ $ $ $ $ $ $ $$ $ $ $ Operations $ $ $$ $ $$ $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  27. 27. Where do projects become $ interesting? $$ $ $ $$ $ $ $ $$ $ $$ $$ $ $ $ $ $ $ $$ $ $ $ Operations $ $ $$ $ $$ $ Implementation $$$ $ $$ Architecture $$ $ $$$ Concept $$ $$ $ $$ $ Requirements 6
  28. 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. 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. 30. Why does Architectural Failure happen? 8
  31. 31. Why does Architectural Failure happen? “Nob od y go t fired fo r bu y ing IBM” 8
  32. 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. 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. 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. 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. 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. 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. 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. 39. Fighting Bullshit Architecture by Example 9
  40. 40. Fighting Bullshit Architecture by Example MySQL 9
  41. 41. Fighting Bullshit Architecture by Example Hibernate MySQL 9
  42. 42. Fighting Bullshit Architecture by Example Hibernate SQL Server MySQL 9
  43. 43. Fighting Bullshit Architecture by Example Hibernate ADO.NET SQL Server MySQL 9
  44. 44. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET SQL Server MySQL 9
  45. 45. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET SQL Server MySQL Oracle 9
  46. 46. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET EJB 3.0 SQL Server MySQL Oracle 9
  47. 47. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate ADO.NET EJB 3.0 Lucene SQL Server MySQL Oracle Index 9
  48. 48. Fighting Bullshit Architecture by Example SOAP Bridge Hibernate Custom ADO.NET EJB 3.0 Crawler Lucene SQL Server MySQL Oracle Index 9
  49. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 78. Building an alternative 18
  79. 79. Building an alternative CRX (+Connectors) 18
  80. 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. 81. Building an alternative CRX (+Connectors) 20
  82. 82. Building an alternative Apache Sling CRX (+Connectors) 20
  83. 83. Building an alternative OSGi Apache Sling CRX (+Connectors) 20
  84. 84. Building an alternative OSGi Scripting Apache Sling CRX (+Connectors) 20
  85. 85. Building an alternative OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  86. 86. Building an alternative Web Browser (Frontend Runtime) OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  87. 87. Building an alternative Web Browser (Frontend Runtime) Widgets OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  88. 88. Building an alternative Web Browser (Frontend Runtime) Widgets Gadgets OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  89. 89. Building an alternative Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 20
  90. 90. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 21
  91. 91. Comparing approaches - Languages Web Browser (Frontend Runtime) Widgets Gadgets Sling.js JS OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 21
  92. 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. 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. 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. 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. 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. 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. 98. Comparing approaches - Interfaces Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 23
  99. 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. 100. Building an alternative Web Browser (Frontend Runtime) Widgets Gadgets Sling.js OSGi Scripting O/C Mapping Apache Sling CRX (+Connectors) 25
  101. 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. 102. 1 Don’t bullshit 26
  103. 103. 1 Don’t bullshit 2 think before you act 26
  104. 104. 1 Don’t bullshit 2 think before you act 3 consider CRX 26
  105. 105. Thank you Learn more at www.day.com or ask lars.trieloff@day.com 27

×