lightweight soa with web widgets
Post on 09-May-2015
7.965 Views
Preview:
DESCRIPTION
TRANSCRIPT
lightweight SOA with web widgets
Phillip Calçadohttp://fragmental.tw
SOAP/WS-*vs.
REST
SOAP/WS-*vs.
RESTX
15 tv channels8 radio stations19 magazines & newspapers
500+ web sites
800 videos900,000 visits
every day
previous architecture
Corporate Database
Media EncoderMedia EncoderMedia EncoderMedia EncoderMedia Encoder
video.globo.comxyz.globo.com
Internet
Movie Sound Picture
pretty picture
Corporate Database
Internet
Media Encoder
SOAP
SQL
SQL SQL
SQL
HTML
HTML
SOAPvideo.globo.com
xyz.globo.com
Media Transfer Protocol
?SQL
real world
two main problems
1) audio and video production
2) integration with other sites
1) audio and video production
Corporate Database
Media Encoder
video.globo.com
Corporate Database
Media Encoder
video.globo.com
Media Encoder
Corporate Database
Media Encoder
video.globo.com
Media Encoder
multiple instances
managed by different companieswith different interests and schedules
Corporate Database
Media Encoder
video.globo.com
Media Encoder
v1.0
v1.1.1
Corporate Database
Media Encoder
video.globo.com
Media Encoder
v1.0
v1.1.1
multiple versions
hard to know who is using what
2) integration with other sites
Corporate Database
Media Encoder
video.globo.com
xyz.globo.com
?
Corporate Database
mainintegrationpoint
Corporate Database
xyz.globo.com
Table A
Table Bxyz.globo.com
xyz.globo.com
xyz.globo.com
Table D
Table C
video.globo.com
Corporate Database
xyz.globo.com
Table A
Table Bxyz.globo.com
xyz.globo.com
xyz.globo.com
Table D
Table C
video.globo.com
X
Corporate Database
View C
xyz.globo.com
Table A
Table Bxyz.globo.com
xyz.globo.com
xyz.globo.com
Table D
video.globo.com
Corporate DatabaseView A
View B
View D
View C
xyz.globo.com
xyz.globo.com
xyz.globo.com
xyz.globo.com
Table E Table F
video.globo.com
Corporate DatabaseView A
View B
View D
View C
xyz.globo.com
xyz.globo.com
xyz.globo.com
xyz.globo.com
video.globo.com
Table E Table F
no contracts
just get what you want from my tables
Corporate Database
video.globo.com
Internet
xyz.globo.com
Video Show
Ratings
Video Show
Ratings
Corporate Database
video.globo.com
Internet
xyz.globo.com
Video Show
Ratings
Video Show
Ratings
same logic
Corporate Database
video.globo.com
Internet
xyz.globo.com
Video Show
Ratings
Video Show
Ratings
same logic
40% codeduplication
among different systemsdeveloped by different people
the new architecture
Corporate Database
Media EncoderMedia EncoderMedia EncoderMedia EncoderMedia Encoder
video.globo.comxyz.globo.com
Internet
Movie Sound Picture
pretty picture
Media EncoderMedia EncoderMedia EncoderMedia EncoderMedia Encoder
video.globo.comxyz.globo.com
Internet
Movie Sound Picture
pretty picture
Media
Services
Internet
Media Encoder
HTTP
HTTP
HTTP
HTML
HTMLSOAP
Media Transfer Protocol
video.globo.com
xyz.globo.com
?
real worldMedia
Services
1) audio and video production
Corporate Database
Media Encoder
video.globo.com
Media Encoder
v1.0
v1.1.1
multiple versions
multiple instances +
Corporate Database
Media Encoder
video.globo.com
Media Encoder
v1.0
v1.1.1
multiple versions
multiple instances +
versioned services
Corporate Database
Media Encoder
video.globo.com
Media Encoder
v1.0
v1.1.1
http://mediaservices/v1/media/135
http://mediaservices/v2/media/135
http://mediaservices/v3/media/135
Corporate Database
Media Encoder
video.globo.com
Media Encoder
v1.0
v1.1.1
Media Encoder
Media Encoder
v1.0
v1.1.1
Media
Services
POST media/v1.0
POST media/v1.1.1
HTTP
HTTP
2) integration with other sites
Corporate DatabaseView A
View B
View D
View C
xyz.globo.com
xyz.globo.com
xyz.globo.com
xyz.globo.com
video.globo.com
Table E Table F
code duplication
no contracts +
Corporate DatabaseView A
View B
View D
View C
xyz.globo.com
xyz.globo.com
xyz.globo.com
xyz.globo.com
video.globo.com
Table E Table F
code duplication
no contracts +
web sites as service clients
Corporate Database
video.globo.com
Internet
xyz.globo.com
Video Show
Ratings
Video Show
Ratings
same logic
video.globo.com
Internet
xyz.globo.com
Media
Services
Video Show
Ratings
logic
0%
5%
10%
15%
20%
25%
30%
35%
40%
Database Integration Web Services
Code Duplication
evolving
video.globo.com xyz.globo.com
<set>
<video id="1"/>
<video id="2"/>
<video id="3"/>
</set>
<set>
<video id="1"/>
<video id="2"/>
<video id="3"/>
</set>
<div>
<h2>video title</h2>
<p>description
description</p>
</div>
<div>
<h2>video title</h2>
<p>description
description</p>
</div>
xml
?
html
<set>
<video id="1"/>
<video id="2"/>
<video id="3"/>
</set>
<div>
<h2>video title</h2>
<p>description
description</p>
</div>
json/xml
html
JavaScriptWidgets
Internet
HTTP
HTTP
HTML
HTMLvideo.globo.com
xyz.globo.com
?
real worldMedia
Services
Internet
HTTP
HTMLvideo.globo.com
xyz.globo.com
?
real worldMedia
Services
Widgets
JavaScript
JavaScript
<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>
0%
5%
10%
15%
20%
25%
30%
35%
40%
Database Integration Web Services
Code Duplication
0%
5%
10%
15%
20%
25%
30%
35%
40%
Database Integration Web Services Widgets API
Code Duplication
•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
some problems
This work is licensed under a Creative Commons Attribution-Share Alike 2.5 Australia License
http://creativecommons.org/licenses/by-sa/2.5/au/
TV Globo and Globo.com are trademarks in Brazil and
other countries.Used by permission.
top related