Quick Upload

lightweight SOA with web widgets

from pcalcado, 7 months ago Add as contact

2434 views | 0 comments | 2 favorites | 3 embeds (Stats)

Presented at Australian Architecture Forum 2008:
http://www.architectureforum.net.au/Pages/Agenda.aspx

Embed customize close
 

More Info

This slideshow is Public

Also on LinkedIn

Views: 2434 Comments: 0 Favorites: 2 Downloads: 83

View Details: 2020 on Slideshare
414 from embeds
Most viewed embeds (Top 5): (…more)
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this slideshow as inappropriate.

If needed, use the feedback form to let us know more details.

Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer. To install it, go here.
Post to Twitter Post to Twitter
Share on Facebook Share on Facebook
Post to Blogger Post to Blogger
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

Presentation Transcript

  1. Slide 1: lightweight SOA with web widgets Phillip Calçado http://fragmental.tw
  2. Slide 2: SOAP/WS-* vs. REST
  3. Slide 3: X SOAP/WS-* vs. REST
  4. Slide 5: 15 tv channels 8 radio stations 19 magazines & newspapers 500+ web sites
  5. Slide 7: 800 videos 900,000 visits every day
  6. Slide 8: previous architecture
  7. Slide 9: pretty picture Corporate Database video.globo.com Media Encoder xyz.globo.com Media Encoder Media Encoder Media Encoder Media Encoder Internet Movie Sound Picture
  8. Slide 10: real world Media Encoder SQL Corporate xyz.globo.com Database SQL SQL SOAP SQL SQL HTML video.globo.com SOAP HTML Internet Media Transfer Protocol
  9. Slide 11: two main problems
  10. Slide 12: 1) audio and video production 2) integration with other sites
  11. Slide 13: 1) audio and video production
  12. Slide 14: Media Encoder Corporate Database video.globo.com
  13. Slide 15: Media Encoder Corporate Database Media Encoder video.globo.com
  14. Slide 16: multiple Media Encoder Corporate instances Database Media Encoder video.globo.com managed by different companies with different interests and schedules
  15. Slide 17: Media Encoder Corporate Database v1.0 Media Encoder video.globo.com v1.1.1
  16. Slide 18: multiple Media Encoder Corporate Database versions v1.0 Media Encoder video.globo.com hard to know who is using what v1.1.1
  17. Slide 19: 2) integration with other sites
  18. Slide 20: Media Encoder Corporate xyz.globo.com Database video.globo.com
  19. Slide 21: main Corporate integration Database point
  20. Slide 22: xyz.globo.com Corporate Table C Table B xyz.globo.com DatabaseTable D Table A xyz.globo.com xyz.globo.com video.globo.com
  21. Slide 23: X xyz.globo.com Corporate Table C Table B xyz.globo.com DatabaseTable D Table A xyz.globo.com xyz.globo.com video.globo.com
  22. Slide 24: xyz.globo.com Corporate View C Table B xyz.globo.com DatabaseTable D Table A xyz.globo.com xyz.globo.com video.globo.com
  23. Slide 25: xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A xyz.globo.com xyz.globo.com video.globo.com
  24. Slide 26: no contracts xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A xyz.globo.com just get what you want xyz.globo.com from my tables video.globo.com
  25. Slide 27: Corporate Database Ratings Ratings Video Show Video Show xyz.globo.com video.globo.com Internet
  26. Slide 28: Corporate Database Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com Internet
  27. Slide 29: 40% code Corporate Database duplication Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com among different systems developed by different people Internet
  28. Slide 30: the new architecture
  29. Slide 31: pretty picture Corporate Database video.globo.com Media Encoder xyz.globo.com Media Encoder Media Encoder Media Encoder Media Encoder Internet Movie Sound Picture
  30. Slide 32: pretty picture Media Services video.globo.com Media Encoder xyz.globo.com Media Encoder Media Encoder Media Encoder Media Encoder Internet Movie Sound Picture
  31. Slide 33: real world Media Encoder HTTP Media xyz.globo.com Services HTTP HTTP SOAP HTML video.globo.com HTML Internet Media Transfer Protocol
  32. Slide 34: 1) audio and video production
  33. Slide 35: multiple multiple Media Encoder + Corporate instances versions Database v1.0 Media Encoder video.globo.com v1.1.1
  34. Slide 36: multiple multiple Media Encoder + Corporate instances versions Database v1.0 versioned Media Encoder video.globo.com services v1.1.1
  35. Slide 37: Media Encoder http://mediaservices/v1/media/135 Corporate Database v1.0 http://mediaservices/v2/media/135 Media Encoder http://mediaservices/v3/media/135 video.globo.com v1.1.1
  36. Slide 38: Media Encoder Corporate Database v1.0 Media Encoder video.globo.com v1.1.1
  37. Slide 39: HTTP Media Encoder POST media/v1.0 v1.0 Media Services Media Encoder HTTP POST media/v1.1.1 v1.1.1
  38. Slide 40: 2) integration with other sites
  39. Slide 41: no code + contracts duplication xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A xyz.globo.com xyz.globo.com video.globo.com
  40. Slide 42: no code + contracts duplication xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A web sites as xyz.globo.com xyz.globo.com service clientsvideo.globo.com
  41. Slide 43: Corporate Database Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com Internet
  42. Slide 44: Media Services Ratings logic Video Show xyz.globo.com video.globo.com Internet
  43. Slide 45: Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services
  44. Slide 46: evolving
  45. Slide 47: <set> <set> <video id=\"1\"/> <video id=\"1\"/> xml <video id=\"2\"/> <video id=\"2\"/> <video id=\"3\"/> <video id=\"3\"/> </set> </set> ? xyz.globo.com video.globo.com <div> <div> <h2>video title</h2> <h2>video title</h2> html <p>description <p>description description</p> description</p> </div> </div>
  46. Slide 48: <set> <video id=\"1\"/> json/xml <video id=\"2\"/> <video id=\"3\"/> </set> JavaScript Widgets <div> <h2>video title</h2> html <p>description description</p> </div>
  47. Slide 49: real world Media xyz.globo.com Services HTTP HTTP HTML video.globo.com HTML Internet
  48. Slide 50: real world Media xyz.globo.com Services JavaScript HTTP Widgets HTML video.globo.com JavaScript Internet
  49. Slide 52: <script type=\"text/javascript\" src=\"http://video.globo.com//Wdgts/9461.html\"> </script> <script type=\"text/javascript\"> var c = new WidgetContext( {'id':'4413','type':'show'},{}); var a = new CalendarBox(c,false); a.render; </script>
  50. Slide 53: Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services
  51. Slide 54: Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services Widgets API
  52. Slide 57: some problems • managing Service Versioning is still hard, keep just the previous version and only if needed • URI versioning can be problematic, we made it optional and added an http header • it’s very hard to be fully RESTful, be pragmatic • strong primitives are flexible
  53. Slide 58: Thank you! Phillip Calçado http://fragmental.tw
  54. Slide 59: This work is licensed under a Creative Commons Attribution-Share Alike 2.5 Australia License http://creativecommons.org/licenses/by-sa/2.5/au/
  55. Slide 60: TV Globo and Globo.com are trademarks in Brazil and other countries. Used by permission.