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.
-
Added to the group Widget by suvendu2020 -
sarnil favorited this 6 months ago -
alider favorited this 7 months ago
Presentation Transcript
- Slide 1: lightweight SOA with web widgets Phillip Calçado http://fragmental.tw
- Slide 2: SOAP/WS-* vs. REST
- Slide 3: X SOAP/WS-* vs. REST
- Slide 5: 15 tv channels 8 radio stations 19 magazines & newspapers 500+ web sites
- Slide 7: 800 videos 900,000 visits every day
- Slide 8: previous architecture
- 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
- 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
- Slide 11: two main problems
- Slide 12: 1) audio and video production 2) integration with other sites
- Slide 13: 1) audio and video production
- Slide 14: Media Encoder Corporate Database video.globo.com
- Slide 15: Media Encoder Corporate Database Media Encoder video.globo.com
- Slide 16: multiple Media Encoder Corporate instances Database Media Encoder video.globo.com managed by different companies with different interests and schedules
- Slide 17: Media Encoder Corporate Database v1.0 Media Encoder video.globo.com v1.1.1
- 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
- Slide 19: 2) integration with other sites
- Slide 20: Media Encoder Corporate xyz.globo.com Database video.globo.com
- Slide 21: main Corporate integration Database point
- 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
- 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
- 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
- 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
- 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
- Slide 27: Corporate Database Ratings Ratings Video Show Video Show xyz.globo.com video.globo.com Internet
- Slide 28: Corporate Database Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com Internet
- 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
- Slide 30: the new architecture
- 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
- 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
- Slide 33: real world Media Encoder HTTP Media xyz.globo.com Services HTTP HTTP SOAP HTML video.globo.com HTML Internet Media Transfer Protocol
- Slide 34: 1) audio and video production
- Slide 35: multiple multiple Media Encoder + Corporate instances versions Database v1.0 Media Encoder video.globo.com v1.1.1
- Slide 36: multiple multiple Media Encoder + Corporate instances versions Database v1.0 versioned Media Encoder video.globo.com services v1.1.1
- 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
- Slide 38: Media Encoder Corporate Database v1.0 Media Encoder video.globo.com v1.1.1
- Slide 39: HTTP Media Encoder POST media/v1.0 v1.0 Media Services Media Encoder HTTP POST media/v1.1.1 v1.1.1
- Slide 40: 2) integration with other sites
- 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
- 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
- Slide 43: Corporate Database Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com Internet
- Slide 44: Media Services Ratings logic Video Show xyz.globo.com video.globo.com Internet
- Slide 45: Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services
- Slide 46: evolving
- 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>
- 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>
- Slide 49: real world Media xyz.globo.com Services HTTP HTTP HTML video.globo.com HTML Internet
- Slide 50: real world Media xyz.globo.com Services JavaScript HTTP Widgets HTML video.globo.com JavaScript Internet
- 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>
- Slide 53: Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services
- Slide 54: Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services Widgets API
- 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
- Slide 58: Thank you! Phillip Calçado http://fragmental.tw
- 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/
- Slide 60: TV Globo and Globo.com are trademarks in Brazil and other countries. Used by permission.


SlideShare brings the cloud to PowerPoint and your desktop...