sling dynamic include

15
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2012 Sling Dynamic Include declarative caching of partially personalized pages Tomasz Rękawek

Upload: tomek-rekawek

Post on 15-Jan-2015

873 views

Category:

Technology


3 download

DESCRIPTION

Declarative caching of partially personalized pages.

TRANSCRIPT

Page 1: Sling Dynamic Include

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

Page 2: Sling Dynamic Include

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

Page 3: Sling Dynamic Include

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

Page 4: Sling Dynamic Include

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

Page 5: Sling Dynamic Include

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

Page 6: Sling Dynamic Include

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

Page 7: Sling Dynamic Include

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

Page 8: Sling Dynamic Include

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

Page 9: Sling Dynamic Include

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

Page 10: 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

Page 11: Sling Dynamic Include

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

Page 12: Sling Dynamic Include

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

Page 13: Sling Dynamic Include

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

Page 14: Sling Dynamic Include

adaptTo() 2012

SDI is available on our Github httpsgithubcomCognifide

Any questions

14

QampA

adaptTo() 2012 15

Thanks

Page 15: Sling Dynamic Include

adaptTo() 2012 15

Thanks