sling dynamic include
Post on 15-Jan-2015
874 Views
Preview:
DESCRIPTION
TRANSCRIPT
APACHE SLING amp FRIENDS TECH MEETUP BERLIN 26-28 SEPTEMBER 2012
Sling Dynamic Include declarative caching of partially personalized pages
Tomasz Rękawek
adaptTo() 2012
Our CQ site contains a lot of static pages Therefore they can be cached Unfortunatelly there is one small dynamic
component Current user info Latest news Random article External content
2
Introduction
adaptTo() 2012 3
Geometrixx example ndash userinfo component
adaptTo() 2012
Dispatcher is great in caching static pages However even a small dynamic component
makes it useless We want to cache the almost whole page Selected component should be included
dynamically directly from the CQ
4
Problem
adaptTo() 2012
Dispatcher should cache site with some static placeholder
We replace placeholder with the dynamic content after dispatcher serves the site
Helpful Sling feature we can render only a part of the page using it URL
5
Solution
httplocalhost4503contentgeometrixxen_jcr_contentuserinfohtml
adaptTo() 2012
So we can place some include tag which will be replaced with the component
Include tag types available on different service layers between dispatcher and the client
6
Solution
CQ instance Dispatcher Apache Content delivery network Browser
Server side includes
Edge site includes AJAX
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Our CQ site contains a lot of static pages Therefore they can be cached Unfortunatelly there is one small dynamic
component Current user info Latest news Random article External content
2
Introduction
adaptTo() 2012 3
Geometrixx example ndash userinfo component
adaptTo() 2012
Dispatcher is great in caching static pages However even a small dynamic component
makes it useless We want to cache the almost whole page Selected component should be included
dynamically directly from the CQ
4
Problem
adaptTo() 2012
Dispatcher should cache site with some static placeholder
We replace placeholder with the dynamic content after dispatcher serves the site
Helpful Sling feature we can render only a part of the page using it URL
5
Solution
httplocalhost4503contentgeometrixxen_jcr_contentuserinfohtml
adaptTo() 2012
So we can place some include tag which will be replaced with the component
Include tag types available on different service layers between dispatcher and the client
6
Solution
CQ instance Dispatcher Apache Content delivery network Browser
Server side includes
Edge site includes AJAX
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012 3
Geometrixx example ndash userinfo component
adaptTo() 2012
Dispatcher is great in caching static pages However even a small dynamic component
makes it useless We want to cache the almost whole page Selected component should be included
dynamically directly from the CQ
4
Problem
adaptTo() 2012
Dispatcher should cache site with some static placeholder
We replace placeholder with the dynamic content after dispatcher serves the site
Helpful Sling feature we can render only a part of the page using it URL
5
Solution
httplocalhost4503contentgeometrixxen_jcr_contentuserinfohtml
adaptTo() 2012
So we can place some include tag which will be replaced with the component
Include tag types available on different service layers between dispatcher and the client
6
Solution
CQ instance Dispatcher Apache Content delivery network Browser
Server side includes
Edge site includes AJAX
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Dispatcher is great in caching static pages However even a small dynamic component
makes it useless We want to cache the almost whole page Selected component should be included
dynamically directly from the CQ
4
Problem
adaptTo() 2012
Dispatcher should cache site with some static placeholder
We replace placeholder with the dynamic content after dispatcher serves the site
Helpful Sling feature we can render only a part of the page using it URL
5
Solution
httplocalhost4503contentgeometrixxen_jcr_contentuserinfohtml
adaptTo() 2012
So we can place some include tag which will be replaced with the component
Include tag types available on different service layers between dispatcher and the client
6
Solution
CQ instance Dispatcher Apache Content delivery network Browser
Server side includes
Edge site includes AJAX
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Dispatcher should cache site with some static placeholder
We replace placeholder with the dynamic content after dispatcher serves the site
Helpful Sling feature we can render only a part of the page using it URL
5
Solution
httplocalhost4503contentgeometrixxen_jcr_contentuserinfohtml
adaptTo() 2012
So we can place some include tag which will be replaced with the component
Include tag types available on different service layers between dispatcher and the client
6
Solution
CQ instance Dispatcher Apache Content delivery network Browser
Server side includes
Edge site includes AJAX
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
So we can place some include tag which will be replaced with the component
Include tag types available on different service layers between dispatcher and the client
6
Solution
CQ instance Dispatcher Apache Content delivery network Browser
Server side includes
Edge site includes AJAX
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
AJAX is a common solution here Drawbacks problems with components containing JS may not work (smoothly or at all) on mobiles not SEO friendly slows down the site flickering components
7
AJAX
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Advantages over AJAX Transparent for the browser search engine
Drawbacks requires developers to have configured
additional servers (Apache or Varnish) developers should be aware of the environment components should be written in a special way
8
SSIESI
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Java servlet filter It affects components with specific
resource types only Replaces it with SSI ESI AJAX include markup
9
Sling Dynamic Include
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012 10
SDI ndash how does it work
Filter the include sub-request contenthellip_jcr_contentcarouselhtml
lt--include contenthellipcarouselnocachehtml--gt
Content
Pass it
Get page
Content
Component content
Filter the request
Request component
contenthellip_jcr_contentcarouselnocachehtml
httpd SDI
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Approach transparent for the components and developers as well
Configured using OSGi console can be disabled on the author developers
instances include tag type can be easy changed
Support for the nonexisting resources
11
SDI ndash advantages
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
Nonexisting (or synthetic) resource ndash resource without any JCR node
JSP file excerpt ltcqinclude path=footer resourceType=foundationcomponentsfootergt
But footer node doesnrsquot exist Component is rendered normally because it doesnrsquot
need any data However requesting
http_jcr_contentfooterhtml will return 404 SDI is able to recognize nonexisting resources and
render them 12
Nonexisting resources
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012 13
Performance comparison
0
200
400
600
800
1000
1200
1400
1 2 3 4 5 6 7 8 9 10
Dispatcher+SDICache disabled
Concurrent requests
Requ
est
s
Number of requests per second vs number of concurrent requests
Geometrixx site SDI includes userinfo component 8 threads 1265 reqs with and 131 reqs without SDI Basically itrsquos a difference between rendering the whole page
and a small part of it
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012
SDI is available on our Github httpsgithubcomCognifide
Any questions
14
QampA
adaptTo() 2012 15
Thanks
adaptTo() 2012 15
Thanks
top related