SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
Rest in Practice:
   Hypermedia and Services
                          Guilherme Silveira




Wednesday, June 8, 2011
Guilherme Silveira




Wednesday, June 8, 2011
@guilhermecaelum

                          guilherme.silveira@caelum.com.br




Wednesday, June 8, 2011
11 years, 1992: “Basic”




Wednesday, June 8, 2011
2002 guj.com.br
                           2003 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.br
                          agilenomundoreal.com.br
                           blog.caelumobjects.com




Wednesday, June 8, 2011
bank.com




Wednesday, June 8, 2011
bank.com                  calendar.com




Wednesday, June 8, 2011
bank.com                  calendar.com




 travel.com
Wednesday, June 8, 2011
bank.com                  calendar.com




 travel.com company.com
Wednesday, June 8, 2011
bank.com                  calendar.com




 travel.com company.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 Web


                              Services




Wednesday, June 8, 2011
Restful Web

       create a saas account

                               Services




Wednesday, June 8, 2011
Restful Web

       create a saas account


                     freeze account
                                      Services




Wednesday, June 8, 2011
Restful Web

       create a saas account


                     freeze account
                                      Services

              reactivate account




Wednesday, June 8, 2011
Web




              Restful           Services
Wednesday, June 8, 2011
Web
                          http




              Restful            Services
Wednesday, June 8, 2011
Web
                           http

                          port 80




              Restful               Services
Wednesday, June 8, 2011
Web
                               http

                             port 80


                          firewall heaven


              Restful                  Services
Wednesday, June 8, 2011
Web Services


            Restful




Wednesday, June 8, 2011
Web Services

                             xml, json
            Restful




Wednesday, June 8, 2011
Web Services

                             xml, json
            Restful
                            get, post, ...




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++

                                           unrest
                                            pay


                                   unresttrips.com

                     guilherme




Wednesday, June 8, 2011
service locator when integrating:
                                        coupling++

                                           unrest
                                            pay


                                   unresttrips.com

                     guilherme




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--

                                         restrips
                                           pay

                                   resttrips.com


                     guilherme




                                         paysite.com


Wednesday, June 8, 2011
dependency injection when integrating:

                                        coupling--

                                         restrips
                                           pay

                                   resttrips.com


                     guilherme




                                         paysite.com


Wednesday, June 8, 2011
i never travel alone



Wednesday, June 8, 2011
my friend
                           sergio




Wednesday, June 8, 2011
resttrips.com: sharing a trip


           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);




Wednesday, June 8, 2011
resttrips.com: sharing a trip


           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);




Wednesday, June 8, 2011
resttrips.com: sharing a trip


           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);




Wednesday, June 8, 2011
calendar: integrating my systems


             myself = Client.at('http://users.calendar.com')
                                             .with(auth).get();

             myself.link("calendar").patch(flight.link("self"));




Wednesday, June 8, 2011
calendar: integrating my systems


             myself = Client.at('http://users.calendar.com')
                                             .with(auth).get();

             myself.link("calendar").patch(flight.link("self"));




Wednesday, June 8, 2011
calendar: more examples



      me.link("calendar").patch(link_to_birthday_list)
      me.link("calendar").patch(link_to_hotel_reservation)
      me.link("calendar").patch(link_to_trip_details)




Wednesday, June 8, 2011
so what?




Wednesday, June 8, 2011
Any update on the flight ==> reflects here
                          Any update on the hotel ==> reflects here
                          Any update on the meeting ==> reflects here




                                                   so what?




Wednesday, June 8, 2011
Any update on the flight ==> reflects here
                          Any update on the hotel ==> reflects here
                          Any update on the meeting ==> reflects here




                                                        at e!
                                                  te gr
                                                e, in
                                           st us      so what?
                                  ’t   j u
                              don



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 flight
                          Remove ==> Cancels the reservation
                          Remove ==> Emails your coworkers



Wednesday, June 8, 2011
so what? that was just keeping an URI.




                                                       rol!
                                                  cont
                                         ali ze
                                    en tr
                             notc
                           o
                          dRemove==> Cancels the flight
                          Remove ==> Cancels the reservation
                          Remove ==> Emails your coworkers



Wednesday, June 8, 2011
does our ‘rest’
                          systems built in
                               2010
                          work this way?
Wednesday, June 8, 2011
so what? that was just keeping an URI.




                          Remove ==> Cancels the flight
                          Remove ==> Cancels the reservation
                          Remove ==> Emails your coworkers

Wednesday, June 8, 2011
so what? that was just keeping an URI.




                                                           at?
                                                    or   m
                                                 h f
                                          h ic
                                  bu tw

                          Remove ==> Cancels the flight
                          Remove ==> Cancels the reservation
                          Remove ==> Emails your coworkers

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?



                                                                nk s!
                                                        er li
                                                     hyp
                                            w i   th
                                      ats
                                  orm
                                 f
                            icro
                          m

                          micro formats, media types, rdf etc

Wednesday, June 8, 2011
integration over the web




Wednesday, June 8, 2011
must ignore



Wednesday, June 8, 2011
bottom up
                           design by committe
                               mime type?
                              microformat
                          controlled vocabulary


Wednesday, June 8, 2011
hypermedia
                          integration over the web




Wednesday, June 8, 2011
guilherme.silveira@caelum.com.br   http://www.caelumobjects.com




                          obrigado
                          @guilhermecaelum




Wednesday, June 8, 2011

Más contenido relacionado

Similar a LT 08 - Guilherme Silveira - Cache hipermidia

iPhone Python love affair
iPhone Python love affairiPhone Python love affair
iPhone Python love affairAnna Callahan
 
Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Hal Seki
 
Mobility in the financial industry
Mobility in the financial industryMobility in the financial industry
Mobility in the financial industryVincent Everts
 
Choosing the right Content Management System
Choosing the right Content Management SystemChoosing the right Content Management System
Choosing the right Content Management SystemRachel Andrew
 
Koss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser appsKoss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser appsEvil Martians
 
YOU WILL REGRET THIS
YOU WILL REGRET THISYOU WILL REGRET THIS
YOU WILL REGRET THISMononcQc
 
A Look at the Future of HTML5
A Look at the Future of HTML5A Look at the Future of HTML5
A Look at the Future of HTML5Tim Wright
 
Opera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsOpera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsZi Bin Cheah
 
Hack Your Life: Winter College 2012
Hack Your Life: Winter College 2012Hack Your Life: Winter College 2012
Hack Your Life: Winter College 2012Miami University
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSSylvain Zimmer
 
Aula 2,3 e 4 Publicidade Online
Aula 2,3 e 4 Publicidade OnlineAula 2,3 e 4 Publicidade Online
Aula 2,3 e 4 Publicidade OnlineKarina Rocha
 
Super Awesome Interactions with jQuery
Super Awesome Interactions with jQuerySuper Awesome Interactions with jQuery
Super Awesome Interactions with jQueryZURB
 
Consumer behavior and mobile payments for tech map amsterdam
Consumer behavior and mobile payments for tech map amsterdamConsumer behavior and mobile payments for tech map amsterdam
Consumer behavior and mobile payments for tech map amsterdamSteven Zwerink
 

Similar a LT 08 - Guilherme Silveira - Cache hipermidia (14)

iPhone Python love affair
iPhone Python love affairiPhone Python love affair
iPhone Python love affair
 
Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping
 
Mobility in the financial industry
Mobility in the financial industryMobility in the financial industry
Mobility in the financial industry
 
Choosing the right Content Management System
Choosing the right Content Management SystemChoosing the right Content Management System
Choosing the right Content Management System
 
Koss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser appsKoss, How to make desktop caliber browser apps
Koss, How to make desktop caliber browser apps
 
YOU WILL REGRET THIS
YOU WILL REGRET THISYOU WILL REGRET THIS
YOU WILL REGRET THIS
 
Messaging patterns
Messaging patternsMessaging patterns
Messaging patterns
 
A Look at the Future of HTML5
A Look at the Future of HTML5A Look at the Future of HTML5
A Look at the Future of HTML5
 
Opera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsOpera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 Standards
 
Hack Your Life: Winter College 2012
Hack Your Life: Winter College 2012Hack Your Life: Winter College 2012
Hack Your Life: Winter College 2012
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
 
Aula 2,3 e 4 Publicidade Online
Aula 2,3 e 4 Publicidade OnlineAula 2,3 e 4 Publicidade Online
Aula 2,3 e 4 Publicidade Online
 
Super Awesome Interactions with jQuery
Super Awesome Interactions with jQuerySuper Awesome Interactions with jQuery
Super Awesome Interactions with jQuery
 
Consumer behavior and mobile payments for tech map amsterdam
Consumer behavior and mobile payments for tech map amsterdamConsumer behavior and mobile payments for tech map amsterdam
Consumer behavior and mobile payments for tech map amsterdam
 

Más de DNAD

LT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYLT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYDNAD
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaDNAD
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpDNAD
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureDNAD
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadDNAD
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionáriaDNAD
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidosDNAD
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?DNAD
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDDDNAD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISSDNAD
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura EvolucionáriaDNAD
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - KeynoteDNAD
 

Más de DNAD (14)

LT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYLT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRY
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharp
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitecture
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionária
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote
 

Último

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

LT 08 - Guilherme Silveira - Cache hipermidia

  • 1. Rest in Practice: Hypermedia and Services Guilherme Silveira Wednesday, June 8, 2011
  • 3. @guilhermecaelum guilherme.silveira@caelum.com.br Wednesday, June 8, 2011
  • 4. 11 years, 1992: “Basic” Wednesday, June 8, 2011
  • 5. 2002 guj.com.br 2003 vraptor Wednesday, June 8, 2011
  • 6. 2004 extreme programming 2006 scrum ... Wednesday, June 8, 2011
  • 7. 2009 restfulie http://restfulie.caelumobjects.com/ Wednesday, June 8, 2011
  • 8. 2010 tectura http://www.tectura.com.br Wednesday, June 8, 2011
  • 9. 2004 caelum - daily life www.caelum.com.br Wednesday, June 8, 2011
  • 10. blogs blog.caelum.com.br agilenomundoreal.com.br blog.caelumobjects.com Wednesday, June 8, 2011
  • 12. bank.com calendar.com Wednesday, June 8, 2011
  • 13. bank.com calendar.com travel.com Wednesday, June 8, 2011
  • 14. bank.com calendar.com travel.com company.com Wednesday, June 8, 2011
  • 15. bank.com calendar.com travel.com company.com Wednesday, June 8, 2011
  • 16. what is the future of integration over the web? Wednesday, June 8, 2011
  • 18. Restful Web Services Wednesday, June 8, 2011
  • 19. Restful Web create a saas account Services Wednesday, June 8, 2011
  • 20. Restful Web create a saas account freeze account Services Wednesday, June 8, 2011
  • 21. Restful Web create a saas account freeze account Services reactivate account Wednesday, June 8, 2011
  • 22. Web Restful Services Wednesday, June 8, 2011
  • 23. Web http Restful Services Wednesday, June 8, 2011
  • 24. Web http port 80 Restful Services Wednesday, June 8, 2011
  • 25. Web http port 80 firewall heaven Restful Services Wednesday, June 8, 2011
  • 26. Web Services Restful Wednesday, June 8, 2011
  • 27. Web Services xml, json Restful Wednesday, June 8, 2011
  • 28. Web Services xml, json Restful get, post, ... Wednesday, June 8, 2011
  • 29. 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
  • 30. service locator when integrating: coupling++ unrest pay unresttrips.com guilherme Wednesday, June 8, 2011
  • 31. service locator when integrating: coupling++ unrest pay unresttrips.com guilherme Wednesday, June 8, 2011
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. dependency injection when integrating: coupling-- restrips pay resttrips.com guilherme paysite.com Wednesday, June 8, 2011
  • 36. dependency injection when integrating: coupling-- restrips pay resttrips.com guilherme paysite.com Wednesday, June 8, 2011
  • 37. i never travel alone Wednesday, June 8, 2011
  • 38. my friend sergio Wednesday, June 8, 2011
  • 39. resttrips.com: sharing a trip 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); Wednesday, June 8, 2011
  • 40. resttrips.com: sharing a trip 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); Wednesday, June 8, 2011
  • 41. resttrips.com: sharing a trip 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); Wednesday, June 8, 2011
  • 42. calendar: integrating my systems myself = Client.at('http://users.calendar.com') .with(auth).get(); myself.link("calendar").patch(flight.link("self")); Wednesday, June 8, 2011
  • 43. calendar: integrating my systems myself = Client.at('http://users.calendar.com') .with(auth).get(); myself.link("calendar").patch(flight.link("self")); Wednesday, June 8, 2011
  • 44. calendar: more examples me.link("calendar").patch(link_to_birthday_list) me.link("calendar").patch(link_to_hotel_reservation) me.link("calendar").patch(link_to_trip_details) Wednesday, June 8, 2011
  • 46. Any update on the flight ==> reflects here Any update on the hotel ==> reflects here Any update on the meeting ==> reflects here so what? Wednesday, June 8, 2011
  • 47. Any update on the flight ==> reflects here Any update on the hotel ==> reflects here Any update on the meeting ==> reflects here at e! te gr e, in st us so what? ’t j u don Wednesday, June 8, 2011
  • 48. so what? that was just keeping an URI. Wednesday, June 8, 2011
  • 49. so what? that was just keeping an URI. Remove ==> Cancels the flight Remove ==> Cancels the reservation Remove ==> Emails your coworkers Wednesday, June 8, 2011
  • 50. so what? that was just keeping an URI. rol! cont ali ze en tr notc o dRemove==> Cancels the flight Remove ==> Cancels the reservation Remove ==> Emails your coworkers Wednesday, June 8, 2011
  • 51. does our ‘rest’ systems built in 2010 work this way? Wednesday, June 8, 2011
  • 52. so what? that was just keeping an URI. Remove ==> Cancels the flight Remove ==> Cancels the reservation Remove ==> Emails your coworkers Wednesday, June 8, 2011
  • 53. so what? that was just keeping an URI. at? or m h f h ic bu tw Remove ==> Cancels the flight Remove ==> Cancels the reservation Remove ==> Emails your coworkers Wednesday, June 8, 2011
  • 54. #json, #xml, #soap #etc? Wednesday, June 8, 2011
  • 55. which #json, #xml #etc? Wednesday, June 8, 2011
  • 58. so what? micro formats, media types, rdf etc Wednesday, June 8, 2011
  • 59. so what? nk s! er li hyp w i th ats orm f icro m micro formats, media types, rdf etc Wednesday, June 8, 2011
  • 60. integration over the web Wednesday, June 8, 2011
  • 62. bottom up design by committe mime type? microformat controlled vocabulary Wednesday, June 8, 2011
  • 63. hypermedia integration over the web Wednesday, June 8, 2011
  • 64. guilherme.silveira@caelum.com.br http://www.caelumobjects.com obrigado @guilhermecaelum Wednesday, June 8, 2011