• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
The Internet as Web Services: introduction to ReST
 

The Internet as Web Services: introduction to ReST

on

  • 7,108 views

The Internet is full of Web Services, everyday more and more. Some services offer API (application programming interface) that developers use to build new applications (mash-ups). One of the most ...

The Internet is full of Web Services, everyday more and more. Some services offer API (application programming interface) that developers use to build new applications (mash-ups). One of the most known and used technology for the machine-to-machine communication is SOAP (Simple Object Access Protocol) but in the last years we can use another paradigm, ReST (Representational State Transfer). How does it work?

Statistics

Views

Total Views
7,108
Views on SlideShare
7,021
Embed Views
87

Actions

Likes
5
Downloads
225
Comments
1

5 Embeds 87

http://www.slideshare.net 39
http://www.oskarnrk.net 27
http://sonetlab.fbk.eu 19
http://static.slidesharecdn.com 1
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Pemerhatian yang jelas dan pembentangan yang menarik melalui contoh yang bertepatan. Saya berminat untuk embed ke dalam website saya, iaitu www.ringtonesz.org/ dan www.lyrics-search.org/

    Ahmad Said.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    The Internet as Web Services: introduction to ReST The Internet as Web Services: introduction to ReST Presentation Transcript

    • The Internet as Web Services: introduction to ReST
    • Oscar Zambotti is a student of Information Technology at the Faculty of Science, University of Trento. He attended the 9-months course "ICT secure programming expert" in Bozen offered by the European Social Fund. Now he's in FBK for his stage period in the SoNet Group and following the “ Presentation or die ” motto is giving this presentation in the very beginning of his stage. Oscar is very interested in social networking and programming applications about it. He is also a speaker and DJ in a local radio station. http://www.oskarnrk.net [email_address] Bio “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
      • What is a Web Service?
      • Different ways: SOAP and ReST
      • Examples: Twitter and Flickr
      • How am I going to use ReST?
      What am I going to talk about? “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • 1. What is a Web Service?
    • “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 “ The challenge now is to join forces to research on Software & Services Technologies, to bring advances to the market and to ensure European leadership in the new Internet economy: The Internet of Services.” Internet of Services, Software and Virtualisation - Objective ICT 2009.1.2, Call 5 of the Seventh Framework Programme (2007-2013) European Commission - Information Society and Media “ The Internet has shown remarkable resilience and flexibility in the face of ever increasing numbers of users, data volume, and changing usage patterns, but faces growing challenges in meetings the needs of our knowledge society. This is the moment to start designing the Internet of the Future.” Future Internet - Research programs of the CIT (Center for Innovation Technology) Fondazione Bruno Kessler The vision of the “Future Internet”
    • “ A Web Service (WS) is a software system designed to support interoperable machine-to-machine interaction over a network.” - W3C Glossary Usually a WS provides the API ( Application Programming Interface ).
      • Hardware limitations?
      • Languages limitations?
      • Access limitations?
      What is a web service? “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • Use of web services? E.g. Flickrvision “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Flickr photos with Google Maps
    • A mashup is a Web application that combines data or functionality from one or more sources into a single integrated application. http://www.programmableweb.com “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Web services for mashups
    • “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 ProgrammableWeb statistics 1308 APIs 3957 Mashups (12 May 2009) The trend...
    • 2. Different ways: SOAP and ReST
    • SOAP ( Simple Object Access Protocol ) uses XML and RPC or HTTP . Businesses can register their WS on UDDI ( Universal Description, Discovery and Integration ) and provide documentation with WSDL ( Web Services Description Language ) “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 image: Wikipedia How to use a web service: SOAP image: Wikipedia
    • <soapenv:Envelope xmlns:soapenv=&quot; http://schemas.xmlsoap.org/soap/envelope/ &quot; xmlns:xsd=&quot; http://www.w3.org/2001/XMLSchema &quot; xmlns:xsi=&quot; http://www.w3.org/2001/XMLSchema-instance &quot;> <soapenv:Body> <req:echo xmlns:req=&quot; http://localhost:8080/axis2/services/MyService/ &quot;> <req:category>classifieds</req:category> </req:echo> </soapenv:Body> </soapenv:Envelope> “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 How to use a web service: SOAP /2 Sample: Request...
    • <soapenv:Envelope xmlns:soapenv=&quot; http://schemas.xmlsoap.org/soap/envelope/ &quot; xmlns:wsa=&quot; http://schemas.xmlsoap.org/ws/2004/08/addressing &quot;> <soapenv:Header> <wsa:ReplyTo> <wsa:Address> http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous </wsa:Address> </wsa:ReplyTo> <wsa:From> <wsa:Address> http://localhost:8080/axis2/services/MyService </wsa:Address> </wsa:From> <wsa:MessageID> ECE5B3F187F29D28BC11433905662036 </wsa:MessageID> </soapenv:Header> <soapenv:Body> <req:echo xmlns:req=&quot; http://localhost:8080/axis2/services/MyService/ &quot;> <req:category>classifieds</req:category> </req:echo> </soapenv:Body> </soapenv:Envelope> “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 How to use a web service: SOAP /3 ...Response
    • ReST ( Representational State Transfer ) is an architectural style for distributed hypermedia systems, it is not just a method for building web services. Introduced by Roy Thomas Fielding in his dissertation to become Ph.D. in 2000. Resource -> URI Interaction -> Representation An application can interact with a resource by knowing the identifier of the resource (URI), and the action required (HTTP methods). ReST is stateless . How to use a web service: ReST “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • HTTP consists in URIs, methods, status codes... The most important HTTP methods compose the basic functions in computer science: CRUD How to use a web service: ReST /2 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 HTTP CRUD SQL POST Create INSERT GET Read SELECT PUT Update UPDATE DELETE Delete DELETE
    • http://example.com/losties How to use a web service: ReST /3 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 POST - C reate - GET - R ead - PUT - U pdate - DELETE - D elete - Create a new passenger List http://example.com/losties/4815162342 Response format: HTML, XML (RSS, Atom, “custom”) , JSON, ... Suggested reading: “How I explained ReST to my wife” (Ryan Tomayko) POST - C reate - GET - R ead - PUT - U pdate - DELETE - D elete - Passenger data Update passenger data Delete passenger
    • An application is ReSTful when has resources accessible by representations. http://example.com/losties/4815162342 Some services are ReST-like : you use HTTP methods but using APIs methods as parameters (Flickr). http://example.com/losties/getLostie?id=4815162342 Nouns vs Verbs How to use a web service: ReST /4 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • A large number of developers chooses ReST instead of SOAP. “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 SOAP vs. ReST on ProgrammableWeb
    • 3. ReST examples (Python code)
    • What is Twitter? Example: Twitter “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • Twitter REST API Method: statuses/show Returns a single status, specified by the id parameter below. The status's author will be returned inline. URL: http://twitter.com/statuses/show/id.format Formats: xml, json, rss, atom HTTP Method(s): GET Requires Authentication: false, unless the author of the status is protected Example: Twitter /2 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Twitter REST API Method: statuses/update Updates the authenticating user's status. Requires the status parameter specified below. Request must be a POST. A status update with text identical to the authenticating user's current status will be ignored to prevent duplicates. URL: http://twitter.com/statuses/update.format Formats: xml, json, rss, atom HTTP Method(s): POST Requires Authentication: true http://apiwiki.twitter.com/Twitter-API-Documentation Some methods require authentication (OAuth)
    • import httplib # some code... def fetch_following(self): conn = httplib.HTTPConnection(&quot;twitter.com&quot;) conn.request(&quot;GET&quot;,&quot;/friends/ids/&quot;+self.screen_name+&quot;.json&quot;) r1 = conn.getresponse() print r1.read() conn.close() Example: Twitter /3 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Output (sample!): user IDs [5428712,31528501,6603122,30304051,30303627,5159271, 17572031,15147484] Obj: fetch the list of the user IDs that a user is following
    • What is Flickr? Screenshot Example: Flickr “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • Developers need a couple of keys to use the APIs. Some methods require authentication. Example: Flickr /2 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • REST Request Format REST is the simplest request format to use - it's a simple HTTP GET or POST action. The REST Endpoint URL is http://api.flickr.com/services/rest/ To request the flickr.test.echo service, invoke like this: http://api.flickr.com/services/rest/?method=flickr.test.echo&name=value By default, REST requests will send a REST response. Example: Flickr /3 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 http://www.flickr.com/services/api/ Some methods require authentication.
    • import urllib, urllib2, json FRI = &quot; http://api.flickr.com/services/rest/ ?&quot; KEY = &quot;d00fa386476950f75555555555555555&quot; SECRET = &quot;cac879e555555555&quot; FORMAT = &quot;json&quot; # some code... def people_find_by_username(username): # some code... def contacts_get_public_list(username): nsid = people_find_by_username(username) req = {'method': CONTACTS_GETPUBLICLIST, 'api_key': KEY, 'user_id': nsid, 'format': FORMAT, 'nojsoncallback': 1} params = urllib.urlencode(req) contacts_public_list = urllib2.urlopen(FRI,params).read() print contacts_public_list Example: Flickr /4 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 HTTP POST (implicit) Obj: fetch the list of the friends a user
    • Example: Flickr /5 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Output (sample!): collection (dictionaries, lists) {&quot;contacts&quot;: {&quot;page&quot;:1, &quot;pages&quot;:1, &quot;per_page&quot;:1000, &quot;perpage&quot;:1000, &quot;total&quot;:39, &quot;contact&quot;: [{&quot;nsid&quot;:&quot;81107858@N00&quot;, &quot;username&quot;:&quot;Jack&quot;, &quot;iconserver&quot;:&quot;207&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;23578585@N00&quot;, &quot;username&quot;:&quot;Locke&quot;, &quot;iconserver&quot;:&quot;211&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;81158128@N00&quot;, &quot;username&quot;:&quot;Sawyer&quot;, &quot;iconserver&quot;:&quot;147&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;29563291@N00&quot;, &quot;username&quot;:&quot;Hurley&quot;, &quot;iconserver&quot;:&quot;182&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;20347812@N00&quot;, &quot;username&quot;:&quot;Kate&quot;, &quot;iconserver&quot;:&quot;113&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}]}, &quot;stat&quot;:&quot;ok&quot;}
    • 4. How am I going to use ReST?
    • Web-based tool, with prepopulation using Web APIs, that displays the network of a user and its evolution over some social networks before and after a defined event . What am I going to do? Socialdash “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
    • Questions? Ideas? Suggestions? Thanks “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 http://sonet.fbk.eu
      • European Commission: Seventh Framework Programme http://cordis.europa.eu/fp7 http://cordis.europa.eu/fp7/ict/programme/challenge1_en.html
      • Strategic guidelines in FBK: the Future Internet http://cit.fbk.eu/future_internet
      • W3C Glossary http://www.w3.org/TR/ws-gloss/
      • Representational State Transfer (ReST) by Roy Thomas Fielding http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm http://www.ics.uci.edu/~fielding/
      • Suggested readings: http://tomayko.com/writings/rest-to-my-wife
      Bibliography “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009