lightweight SOA with web widgets

Preview:

DESCRIPTION

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

Citation preview

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

Thank you!

Phillip Calçadohttp://fragmental.tw

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.

Recommended