lt 08 - guilherme silveira - cache hipermidia
TRANSCRIPT
Rest in Practice:Hypermedia and Services
Guilherme Silveira
Wednesday, June 8, 2011
Guilherme Silveira
Wednesday, June 8, 2011
@guilhermecaelum
Wednesday, June 8, 2011
11 years, 1992: “Basic”
Wednesday, June 8, 2011
2002 guj.com.br2003 vraptor
Wednesday, June 8, 2011
2004 extreme programming
2006 scrum
...
Wednesday, June 8, 2011
2009 restfulie
http://restfulie.caelumobjects.com/
Wednesday, June 8, 2011
2010 tectura
http://www.tectura.com.br
Wednesday, June 8, 2011
2004 caelum - daily life
www.caelum.com.br
Wednesday, June 8, 2011
blogs
blog.caelum.com.bragilenomundoreal.com.brblog.caelumobjects.com
Wednesday, June 8, 2011
bank.com
Wednesday, June 8, 2011
calendar.combank.com
Wednesday, June 8, 2011
calendar.com
travel.com
bank.com
Wednesday, June 8, 2011
calendar.com
travel.com company.com
bank.com
Wednesday, June 8, 2011
calendar.com
travel.com company.com
bank.com
Wednesday, June 8, 2011
what is the future of integration over the web?
Wednesday, June 8, 2011
what was REST?
Wednesday, June 8, 2011
Restful
Services
Web
Wednesday, June 8, 2011
Restful
Servicescreate a saas account
Web
Wednesday, June 8, 2011
Restful
Servicescreate a saas account
freeze account
Web
Wednesday, June 8, 2011
Restful
Servicescreate a saas account
freeze account
reactivate account
Web
Wednesday, June 8, 2011
Restful Services
Web
Wednesday, June 8, 2011
Restful Services
http
Web
Wednesday, June 8, 2011
Restful Services
http
port 80
Web
Wednesday, June 8, 2011
Restful Services
http
port 80
firewall heaven
Web
Wednesday, June 8, 2011
Restful
ServicesWeb
Wednesday, June 8, 2011
Restful
Services
xml, json
Web
Wednesday, June 8, 2011
Restful
Services
xml, json
get, post, ...
Web
Wednesday, June 8, 2011
unresttrips.com: flight details
<?xml version="1.0" encoding="UTF-8" standalum="yes"?><flight> <information> <from>sao paulo</from> <to>seoul</to> </information> <value>900.00</value></flight>
Wednesday, June 8, 2011
service locator when integrating:
coupling++
guilherme
unresttrips.com
unrest pay
Wednesday, June 8, 2011
service locator when integrating:
coupling++
guilherme
unresttrips.com
unrest pay
Wednesday, June 8, 2011
resttrips.com: flight details
<?xml version="1.0" encoding="UTF-8" standalum="yes"?><flight> <information> <from>sao paulo</from> <to>seoul</to> </information> <value>900.00</value> <link rel="payment" href="http://resttrips.com/payment/custom"/></flight>
Wednesday, June 8, 2011
resttrips.com: making the payment
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value);
Wednesday, June 8, 2011
resttrips.com: changing its payment provider
<?xml version="1.0" encoding="UTF-8" standalum="yes"?><flight> <information> <from>sao paulo</from> <to>seoul</to> </information> <value>900.00</value> <link rel="payment" href="http://paysite.com/custom"/></flight>
Wednesday, June 8, 2011
dependency injection when integrating:
coupling--
guilherme
resttrips.com
paysite.com
restrips pay
Wednesday, June 8, 2011
dependency injection when integrating:
coupling--
guilherme
resttrips.com
paysite.com
restrips pay
Wednesday, June 8, 2011
i never travel alone
Wednesday, June 8, 2011
my friendsergio
Wednesday, June 8, 2011
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
// send the payment link to another part of the web
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
resttrips.com: sharing a trip
Wednesday, June 8, 2011
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
// send the payment link to another part of the web
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
resttrips.com: sharing a trip
Wednesday, June 8, 2011
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
// send the payment link to another part of the web
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
resttrips.com: sharing a trip
Wednesday, June 8, 2011
myself = Client.at('http://users.calendar.com') .with(auth).get();
myself.link("calendar").patch(flight.link("self"));
calendar: integrating my systems
Wednesday, June 8, 2011
myself = Client.at('http://users.calendar.com') .with(auth).get();
myself.link("calendar").patch(flight.link("self"));
calendar: integrating my systems
Wednesday, June 8, 2011
me.link("calendar").patch(link_to_birthday_list)me.link("calendar").patch(link_to_hotel_reservation)me.link("calendar").patch(link_to_trip_details)
calendar: more examples
Wednesday, June 8, 2011
so what?
Wednesday, June 8, 2011
so what?
Any update on the flight ==> reflects hereAny update on the hotel ==> reflects hereAny update on the meeting ==> reflects here
Wednesday, June 8, 2011
so what?
Any update on the flight ==> reflects hereAny update on the hotel ==> reflects hereAny update on the meeting ==> reflects here
don’t just u
se, integrate!
Wednesday, June 8, 2011
so what? that was just keeping an URI.
Wednesday, June 8, 2011
so what? that was just keeping an URI.
Remove ==> Cancels the flightRemove ==> Cancels the reservationRemove ==> Emails your coworkers
Wednesday, June 8, 2011
so what? that was just keeping an URI.
Remove ==> Cancels the flightRemove ==> Cancels the reservationRemove ==> Emails your coworkers
do not central
ize control!
Wednesday, June 8, 2011
does our ‘rest’ systems built in
2010work this way?
Wednesday, June 8, 2011
so what? that was just keeping an URI.
Remove ==> Cancels the flightRemove ==> Cancels the reservationRemove ==> Emails your coworkers
Wednesday, June 8, 2011
so what? that was just keeping an URI.
Remove ==> Cancels the flightRemove ==> Cancels the reservationRemove ==> Emails your coworkers
but which format?
Wednesday, June 8, 2011
#json, #xml, #soap #etc?
Wednesday, June 8, 2011
which #json, #xml #etc?
Wednesday, June 8, 2011
exercise
Wednesday, June 8, 2011
so what?
Wednesday, June 8, 2011
so what?
micro formats, media types, rdf etc
Wednesday, June 8, 2011
so what?
micro formats, media types, rdf etc
micro formats
with hyperlinks!
Wednesday, June 8, 2011
integration over the web
Wednesday, June 8, 2011
must ignore
Wednesday, June 8, 2011
bottom up
microformat
mime type?
design by committe
controlled vocabulary
Wednesday, June 8, 2011
hypermediaintegration over the web
Wednesday, June 8, 2011