Content	  Fabrics	  Or	  the	  lost	  art	  of	  server	  side	  mash-­‐ups.	  
Me
@nigelfds	     github.com/nigelfds	  
test   tech   optimize                                            our approachXD                          release         ...
Melbourne	  Australia	  
Mash-­‐ups	  right?	  
uh..	  not	  really.	  	  
mess	  The	  world	  of	  big	  enterprise	  	  
Content	  producBon	  End	  users	                                                      StaBc	  files	                     ...
StaBc	  InformaBon	  Business	  Processes	         Tomcat	                                        Another	  App	     Yet	 ...
The	  problem:	  Picking	  a	  soluBon	  	  
DuplicaBon	  vs	  Coupling	  
hQp://site.com/applicaBon	                                                                          Alfresco	             ...
The	  Strangler	  PaQern	  
Inspired	  by	  Linked	  In	                             Tomcat	                                       Sitemesh	  Request	...
RefreshingRefreshing
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><...
Evolving	  	     to	  the	  next	  version	  
The	  problem:	  	  Content	  scaling	  
The	  general	  soluBon	  in	  compuBng	  to	  speed	  up	  access	  to	  the	  same	  informaBon	  is	  to	  use	  caches...
Scaling	  by	  Caching	  
Scaling	  using	    content	   freshness	  
<div	  class="pagelayout	  single-­‐column-­‐content">	  	  	  	  	  	  	  <%=	  fetch("/travel/news?filter=SaoPaulo").div(...
Server	  side	  example	  Travel	  Booking	                                                                      News	  Up...
Client	  side	  example	  JavaScript	  in	                                                                News	  Updates	 ...
The	  problem:	  ConBnuous	  incremental	      deployments	  	  
MigraBng	  content	  
Batch	  process	  	  
Too	  many	  files	  
Products	  manufactured	  by	  one	  company,	  that	  are	  packaged	  and	  sold	  by	  other	  companies	  under	  diffe...
Enabling	  mulBple	  teams	  
hQp://marBnfowler.com/bliki/StranglerApplicaBon.html	  hQp://marBnfowler.com/bliki/SegmentaBonByFreshness.html	  hQp://mic...
RubyConf Brazil 2011
RubyConf Brazil 2011
RubyConf Brazil 2011
RubyConf Brazil 2011
RubyConf Brazil 2011
RubyConf Brazil 2011
Upcoming SlideShare
Loading in …5
×

RubyConf Brazil 2011

488 views

Published on

Talk given in SaoPaulo in 2011 for 45mins.

Focussing on servver side mash-ups and our use of them in a Strangler pattern

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
488
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

RubyConf Brazil 2011

  1. 1. Content  Fabrics  Or  the  lost  art  of  server  side  mash-­‐ups.  
  2. 2. Me
  3. 3. @nigelfds   github.com/nigelfds  
  4. 4. test tech optimize our approachXD release How? offshore & Consulting distributed Services Delivery App dev ThoughtWorks support Products ALM opensource cruise mingle twist
  5. 5. Melbourne  Australia  
  6. 6. Mash-­‐ups  right?  
  7. 7. uh..  not  really.    
  8. 8. mess  The  world  of  big  enterprise    
  9. 9. Content  producBon  End  users   StaBc  files   served  from     Apache  Content  Teams   CMS  system   (Alfresco)  
  10. 10. StaBc  InformaBon  Business  Processes   Tomcat   Another  App   Yet  another  app   Rails  on  JRuby  
  11. 11. The  problem:  Picking  a  soluBon    
  12. 12. DuplicaBon  vs  Coupling  
  13. 13. hQp://site.com/applicaBon   Alfresco   CMS   Rails  on  JRuby    End  users  
  14. 14. The  Strangler  PaQern  
  15. 15. Inspired  by  Linked  In   Tomcat   Sitemesh  Request   JRuby-­‐Rack   Rails   Alfresco  CMS  Response   Rails  apps  deployed  as   wars   Webfabric  
  16. 16. RefreshingRefreshing
  17. 17. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Booking - <%= yield :title %></title> <%= fetch("/website/content/integration-template.html").head %> <%= yield :javascripts %> </head> <body> <%= fetch("/website/content/integration-template.html").div(header) %> <div class="pagelayout single-column-content”> <div class="maincontent"> <%= render shared/progress_bar %> <div class="grid_24"> <%= yield %> </div> </div> <%= fetch("/website/content/integration-template.html").div(footer) %> </div> </body></html>
  18. 18. Evolving     to  the  next  version  
  19. 19. The  problem:    Content  scaling  
  20. 20. The  general  soluBon  in  compuBng  to  speed  up  access  to  the  same  informaBon  is  to  use  caches.    
  21. 21. Scaling  by  Caching  
  22. 22. Scaling  using   content   freshness  
  23. 23. <div  class="pagelayout  single-­‐column-­‐content">              <%=  fetch("/travel/news?filter=SaoPaulo").div(content)  %>              <div  class="maincontent">    <div  class="grid_24">                            <%=  yield  %>                                          </div>              </div>  </div>  
  24. 24. Server  side  example  Travel  Booking   News  Updates  Rails  App   Rails  App   Get /travel/news?filter=SaoPaulo Accept: application/vnd.company.news+html If-None-Match:… Cache-Control:…Travel  Booking   News  Updates  Rails  App   Rails  App   <a class="related" href=”/travel/news/13404492/”>Latest Travel News</ a>
  25. 25. Client  side  example  JavaScript  in   News  Updates  page   Rails  App   Get /travel/news/13404492/ Accept: text/html, */* If-None-Match:… Cache-Control:…Travel  Booking   News  Updates  Rails  App   Rails  App   <div> <label>…<> <input name="email”/> <label>…<> <input name=”password”/> … </div>
  26. 26. The  problem:  ConBnuous  incremental   deployments    
  27. 27. MigraBng  content  
  28. 28. Batch  process    
  29. 29. Too  many  files  
  30. 30. Products  manufactured  by  one  company,  that  are  packaged  and  sold  by  other  companies  under  different  brand  names.  
  31. 31. Enabling  mulBple  teams  
  32. 32. hQp://marBnfowler.com/bliki/StranglerApplicaBon.html  hQp://marBnfowler.com/bliki/SegmentaBonByFreshness.html  hQp://microformats.org/wiki/rest/ahah  hQp://www.sitemesh.org/overview.html  hQp://code.google.com/p/webfabric/  

×