SlideShare a Scribd company logo
1 of 107
Download to read offline
The Zero Bullshit Architecture

Day Business & Tech Summit Chicago,
May 2008



Lars Trieloff, Product Manager




                                      1
Before I start




                 “  One of the most salient
                 features of our culture is that




                                            ”
                   there is so much bullshit.

                      —Prof. Harry G. Frankfurt




                                                   2
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
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
Goal Review




              4
Goal Review

  We want to build web
  applications




                         4
Goal Review

  We want to build web
  applications to deliver value to our users




                                               4
Goal Review

  We want to build web
  applications to deliver value to our users
  web applications that allow
  integration




                                               4
Goal Review

  We want to build web
  applications to deliver value to our users
  web applications that allow
  integration and enable personalization




                                               4
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
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
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
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
Sounds easy, but




             May you have interesting
                software projects




                                        5
Sounds easy, but
  Why do so many soft ware projects end up becoming
                                       interesting?




                 May you have interesting
                    software projects




                                                  5
Where do projects become
interesting?




                           6
Where do projects become
interesting?




           Requirements    6
Where do projects become
interesting?




             Concept

           Requirements    6
Where do projects become
interesting?




            Architecture

             Concept

           Requirements    6
Where do projects become
interesting?



           Implementation

            Architecture

              Concept

           Requirements     6
Where do projects become
interesting?

            Operations

           Implementation

            Architecture

              Concept

           Requirements     6
Where do projects become
interesting?

             Operations

            Implementation

             Architecture

               Concept
    $$ $$
      $                      $$ $

            Requirements            6
Where do projects become
interesting?

                    Operations

                   Implementation

                    Architecture
            $$ $                    $$$

                      Concept
    $$ $$
      $                                   $$ $

                   Requirements                  6
Where do projects become
interesting?

                          Operations

                   $     Implementation
                   $$$                    $ $$

                          Architecture
            $$ $                                 $$$

                            Concept
    $$ $$
      $                                                $$ $

                         Requirements                         6
Where do projects become
interesting?

                            Operations      $
                     $ $$                  $ $$


                   $     Implementation
                   $$$                            $ $$

                            Architecture
            $$ $                                         $$$

                             Concept
    $$ $$
      $                                                        $$ $

                         Requirements                                 6
Where do projects become
                  $
interesting?     $$
              $ $ $$ $
                              $ $ $$ $ $$
                            $$ $ $ $ $ $ $ $$ $ $ $

                             Operations                $
                     $ $$                             $ $$


                   $     Implementation
                   $$$                                       $ $$

                            Architecture
            $$ $                                                    $$$

                               Concept
    $$ $$
      $                                                                   $$ $

                         Requirements                                            6
Where do projects become
                  $
interesting?     $$
              $ $ $$ $
                              $ $ $$ $ $$
                            $$ $ $ $ $ $ $ $$ $ $ $

                             Operations                $
                     $ $$                             $ $$


                   $     Implementation
                   $$$                                       $ $$

                            Architecture
            $$ $                                                    $$$

                               Concept
    $$ $$
      $                                                                   $$ $

                         Requirements                                            6
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
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
Why does Architectural Failure
happen?




                                 8
Why does Architectural Failure
happen?

        “Nob od y go t
        fired fo r
        bu y ing IBM”




                                 8
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
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
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
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
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
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
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
Fighting Bullshit Architecture by
Example




                                    9
Fighting Bullshit Architecture by
Example




                  MySQL

                                    9
Fighting Bullshit Architecture by
Example




                 Hibernate




                  MySQL

                                    9
Fighting Bullshit Architecture by
Example




                      Hibernate




         SQL Server    MySQL

                                    9
Fighting Bullshit Architecture by
Example




                      Hibernate

          ADO.NET



         SQL Server    MySQL

                                    9
Fighting Bullshit Architecture by
Example



           SOAP
           Bridge
                      Hibernate

          ADO.NET



         SQL Server    MySQL

                                    9
Fighting Bullshit Architecture by
Example



           SOAP
           Bridge
                      Hibernate

          ADO.NET



         SQL Server    MySQL      Oracle

                                           9
Fighting Bullshit Architecture by
Example



           SOAP
           Bridge
                      Hibernate

          ADO.NET                 EJB 3.0



         SQL Server    MySQL      Oracle

                                            9
Fighting Bullshit Architecture by
Example



           SOAP
           Bridge
                      Hibernate

          ADO.NET                 EJB 3.0



                                            Lucene
         SQL Server    MySQL      Oracle
                                             Index
                                                     9
Fighting Bullshit Architecture by
Example



           SOAP
           Bridge
                      Hibernate
                                            Custom
          ADO.NET                 EJB 3.0
                                            Crawler


                                            Lucene
         SQL Server    MySQL      Oracle
                                             Index
                                                      9
Fighting Bullshit Architecture by
Example



           SOAP
                                     Spring Webflow
           Bridge
                      Hibernate
                                               Custom
          ADO.NET                 EJB 3.0
                                               Crawler


                                               Lucene
         SQL Server    MySQL      Oracle
                                                Index
                                                         9
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Building an alternative




                          18
Building an alternative




              CRX (+Connectors)

                                  18
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
Building an alternative




              CRX (+Connectors)

                                  20
Building an alternative




                Apache Sling



              CRX (+Connectors)

                                  20
Building an alternative




         OSGi


                  Apache Sling



                CRX (+Connectors)

                                    20
Building an alternative




         OSGi               Scripting


                  Apache Sling



                CRX (+Connectors)

                                        20
Building an alternative




         OSGi               Scripting   O/C Mapping


                  Apache Sling



                CRX (+Connectors)

                                                      20
Building an alternative
           Web Browser (Frontend Runtime)




         OSGi                 Scripting     O/C Mapping


                    Apache Sling



                 CRX (+Connectors)

                                                          20
Building an alternative
            Web Browser (Frontend Runtime)


         Widgets




          OSGi                 Scripting     O/C Mapping


                     Apache Sling



                   CRX (+Connectors)

                                                           20
Building an alternative
            Web Browser (Frontend Runtime)


         Widgets                Gadgets




          OSGi                 Scripting     O/C Mapping


                     Apache Sling



                   CRX (+Connectors)

                                                           20
Building an alternative
            Web Browser (Frontend Runtime)


         Widgets                Gadgets        Sling.js




          OSGi                 Scripting     O/C Mapping


                     Apache Sling



                   CRX (+Connectors)

                                                           20
Comparing approaches - Languages
          Web Browser (Frontend Runtime)


       Widgets                Gadgets        Sling.js




        OSGi                 Scripting     O/C Mapping


                   Apache Sling



                 CRX (+Connectors)

                                                         21
Comparing approaches - Languages
          Web Browser (Frontend Runtime)


       Widgets                Gadgets        Sling.js
                      JS



        OSGi                 Scripting     O/C Mapping


                   Apache Sling



                 CRX (+Connectors)

                                                         21
Comparing approaches - Languages
          Web Browser (Frontend Runtime)


       Widgets                Gadgets        Sling.js
                      JS             JS



        OSGi                 Scripting     O/C Mapping


                   Apache Sling



                 CRX (+Connectors)

                                                         21
Comparing approaches - Languages
          Web Browser (Frontend Runtime)


       Widgets                Gadgets        Sling.js
                      JS             JS                 JS



        OSGi                 Scripting     O/C Mapping


                   Apache Sling



                 CRX (+Connectors)

                                                             21
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
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
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
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
Comparing approaches - Interfaces
           Web Browser (Frontend Runtime)


        Widgets                Gadgets        Sling.js




         OSGi                 Scripting     O/C Mapping


                    Apache Sling



                  CRX (+Connectors)

                                                          23
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
Building an alternative
            Web Browser (Frontend Runtime)


         Widgets                Gadgets        Sling.js




          OSGi                 Scripting     O/C Mapping


                     Apache Sling



                   CRX (+Connectors)

                                                           25
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
1   Don’t bullshit




                     26
1      Don’t bullshit




2   think before you act




                           26
1      Don’t bullshit




2   think before you act




3      consider CRX
                           26
Thank you
Learn more at www.day.com
or ask lars.trieloff@day.com


                               27
The Zero Bullshit Architecture
The Zero Bullshit Architecture

More Related Content

Viewers also liked

Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDB
MongoDB
 
ModeShape 3 overview
ModeShape 3 overviewModeShape 3 overview
ModeShape 3 overview
Randall Hauch
 
Hippo get together workshop automatic export
Hippo get together   workshop automatic exportHippo get together   workshop automatic export
Hippo get together workshop automatic export
Hippo
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
nobby
 

Viewers also liked (20)

Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDB
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log Analyzer
 
ModeShape 3 overview
ModeShape 3 overviewModeShape 3 overview
ModeShape 3 overview
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karaf
 
Content Management Systems and MongoDB
Content Management Systems and MongoDBContent Management Systems and MongoDB
Content Management Systems and MongoDB
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
Hippo get together workshop automatic export
Hippo get together   workshop automatic exportHippo get together   workshop automatic export
Hippo get together workshop automatic export
 
Hippo CMS at OpenCo Amsterdam 2014
Hippo CMS at OpenCo Amsterdam 2014Hippo CMS at OpenCo Amsterdam 2014
Hippo CMS at OpenCo Amsterdam 2014
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Development
 
Hippo Presentation Jboye Study tour
Hippo Presentation Jboye Study tourHippo Presentation Jboye Study tour
Hippo Presentation Jboye Study tour
 
JCR In Action (ApacheCon US 2009)
JCR In Action (ApacheCon US 2009)JCR In Action (ApacheCon US 2009)
JCR In Action (ApacheCon US 2009)
 
What's new in JSR-283?
What's new in JSR-283?What's new in JSR-283?
What's new in JSR-283?
 
Introducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management PlatformIntroducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management Platform
 
2008-12 OJUG JCR Demo
2008-12 OJUG JCR Demo2008-12 OJUG JCR Demo
2008-12 OJUG JCR Demo
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?
 
App and web with Hippo CMS and AngularJS
App and web with Hippo CMS and AngularJS App and web with Hippo CMS and AngularJS
App and web with Hippo CMS and AngularJS
 
Cms integration of apache solr how we did it.
Cms integration of apache solr   how we did it.Cms integration of apache solr   how we did it.
Cms integration of apache solr how we did it.
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCR
 

Similar to The Zero Bullshit Architecture

01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen
Stephen Thair
 
Qconny2014dmarsh 140613080328-phpapp02
Qconny2014dmarsh 140613080328-phpapp02Qconny2014dmarsh 140613080328-phpapp02
Qconny2014dmarsh 140613080328-phpapp02
재구 김
 
Take advantage of new trends in agile: Iterationless Kanban and Continuous De...
Take advantage of new trends in agile: Iterationless Kanban and Continuous De...Take advantage of new trends in agile: Iterationless Kanban and Continuous De...
Take advantage of new trends in agile: Iterationless Kanban and Continuous De...
Atlassian
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?
Erik Osterman
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
mfrancis
 

Similar to The Zero Bullshit Architecture (20)

JustEnoughDevOpsForDataScientists
JustEnoughDevOpsForDataScientistsJustEnoughDevOpsForDataScientists
JustEnoughDevOpsForDataScientists
 
Agile 10 Step Story Model
Agile 10 Step Story ModelAgile 10 Step Story Model
Agile 10 Step Story Model
 
01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen
 
HackNTU Silicon Valley Project
HackNTU Silicon Valley ProjectHackNTU Silicon Valley Project
HackNTU Silicon Valley Project
 
HackNTU Silicon Valley Project
HackNTU Silicon Valley ProjectHackNTU Silicon Valley Project
HackNTU Silicon Valley Project
 
Neo4j GraphTalks Milan - CONOSCERE ED INTEGRARE CON SUCCESSO NEO4J NELLA TUA ...
Neo4j GraphTalks Milan - CONOSCERE ED INTEGRARE CON SUCCESSO NEO4J NELLA TUA ...Neo4j GraphTalks Milan - CONOSCERE ED INTEGRARE CON SUCCESSO NEO4J NELLA TUA ...
Neo4j GraphTalks Milan - CONOSCERE ED INTEGRARE CON SUCCESSO NEO4J NELLA TUA ...
 
NYC API Strategy Keynote - Accelerating Innovation
NYC API Strategy Keynote - Accelerating InnovationNYC API Strategy Keynote - Accelerating Innovation
NYC API Strategy Keynote - Accelerating Innovation
 
Atmosphere Conference 2015: DevOps and the Need for Speed
Atmosphere Conference 2015: DevOps and the Need for SpeedAtmosphere Conference 2015: DevOps and the Need for Speed
Atmosphere Conference 2015: DevOps and the Need for Speed
 
Service-Oriented Architecture for Libraries
Service-Oriented Architecture for LibrariesService-Oriented Architecture for Libraries
Service-Oriented Architecture for Libraries
 
Avoiding Overdesign and Underdesign
Avoiding Overdesign and UnderdesignAvoiding Overdesign and Underdesign
Avoiding Overdesign and Underdesign
 
Qconny2014dmarsh 140613080328-phpapp02
Qconny2014dmarsh 140613080328-phpapp02Qconny2014dmarsh 140613080328-phpapp02
Qconny2014dmarsh 140613080328-phpapp02
 
Irl Web Strategy
Irl Web StrategyIrl Web Strategy
Irl Web Strategy
 
Take advantage of new trends in agile: Iterationless Kanban and Continuous De...
Take advantage of new trends in agile: Iterationless Kanban and Continuous De...Take advantage of new trends in agile: Iterationless Kanban and Continuous De...
Take advantage of new trends in agile: Iterationless Kanban and Continuous De...
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?
 
An Introduction to SAFe: The Scaled Agile Framework
An Introduction to SAFe: The Scaled Agile FrameworkAn Introduction to SAFe: The Scaled Agile Framework
An Introduction to SAFe: The Scaled Agile Framework
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
 
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
 
A "Quality" Debate
A "Quality" DebateA "Quality" Debate
A "Quality" Debate
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
What is this cloud thing?
What is this cloud thing?What is this cloud thing?
What is this cloud thing?
 

More from Lars Trieloff

How to get value out of data
How to get value out of dataHow to get value out of data
How to get value out of data
Lars Trieloff
 
Smartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainSmartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply Chain
Lars Trieloff
 
Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5
Lars Trieloff
 

More from Lars Trieloff (20)

Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless WorldPutting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
 
Serverless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and ClojureServerless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and Clojure
 
Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...
Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...
Data Natives 2015: Predictive Applications are Going to Steal Your Job: this ...
 
How to get value out of data
How to get value out of dataHow to get value out of data
How to get value out of data
 
Smartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainSmartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply Chain
 
Business Reasons for Predictive Applications
Business Reasons for Predictive ApplicationsBusiness Reasons for Predictive Applications
Business Reasons for Predictive Applications
 
ADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it WorkADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it Work
 
Automated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data FrankfurtAutomated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data Frankfurt
 
Automated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data HamburgAutomated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data Hamburg
 
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data DüsseldorfAutomated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
 
Automated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data BrusselsAutomated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data Brussels
 
Automated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data AmsterdamAutomated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data Amsterdam
 
Automated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data ParisAutomated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data Paris
 
Automated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data ViennaAutomated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data Vienna
 
Big Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big DataBig Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big Data
 
10 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 201410 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 2014
 
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big DataBig Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
 
The DNA of Marketing
The DNA of MarketingThe DNA of Marketing
The DNA of Marketing
 
Cross community campaigns with CQ5
Cross community campaigns with CQ5Cross community campaigns with CQ5
Cross community campaigns with CQ5
 
Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

The Zero Bullshit Architecture

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