RESTifying WS-* Services A Case Study in RFID (Radio Frequency IDentification) Dominique Guinard SAP Research & ETH Zurich Mathias Mueller University of Fribourg 167
Today’s Menu 1. Background: > The global RFID network in a nutshell > Why RESTfying it? 1. RESTification process / implementation 2. Demonstration [ flickr.com/photos/lessio/1346732230/ ] 2
[ www.flickr.com/photos/docman ] RFID? EPC? EPC Network? BACKGROUND 3
The EPC Network in a Nutshell 4
[www.flickr.com/photos/moragcasey/] REST and RFID? What do we want to achieve? MOTIVATION 5
Bringing the EPC Network to the Web? WS-* are adequate for business integration: > with an ERP (Enterprise Resource Planner). > with a point of sale software. But not so for more light-weight, ad-hoc integration [Paut08,09] : > Low entry barrier. > Web (browsing, bookmarking, emailing, etc.) and Web mashups (JS, etc.). > Mobile applications, resource constrained devices. Thus the idea to offer an alternate, RESTful interface for querying the EPC network. [Paut08]: Pautasso, Cesare, Olaf Zimmermann, and Frank [Paut09]: Pautasso, Cesare, and Erik Wilde. “Why is the Web Leymann. “Restful web services vs. "big"' web services: making Loosely Coupled? A Multi-Faceted Metric for Service Design.” In the right architectural decision.” In Proc. of the 17th international Proc. of the 18th International World Wide Web Conference conference on World Wide Web (WWW '08) , 805―814. New (WWW2009) . Madrid, Spain, 2009. York, NY, USA: ACM, 2008. 6
[www.flickr.com/photos/julianbleecker ] REST? Resource design, RESTful framework, implementation tinyurl.com/ ARCHITECTURE restwife 7
Design: Addressability & Connectedness Resources: > Locations, Readers, Tagged objects (EPC), etc. Links: > Every resource is linked to its children. > And to relevant resources. Richardson, Leonard, and Sam Ruby. BASE_URL/ location /migros:basel/ RESTful Web Services . O'Reilly Media, Inc., 2007. reader /warehouse:incoming/ time /2009-12-21T13:22:04.000Z/ event /EPC 8
Design: Wait, the EPCIS is not Hierachical! The EPCIS data isn‘t really hierachical: > E.g. an EPC can be seen by BASE_URL/ eventquery/ many readers. result?param1=value1&..& paramN=valueN > Running more complex queries (e.g. all events occuring in 2010 BASE_URL/ eventquery/result? for urn:epc:id:sgtin: reader=sap:regensdorf:frc:storage& 0057000.123430.2025) becomes epc=urn:epc:id:sgtin:200057000.* cumbersome! > We offer a query-parameter based interface as well. > Still is RESTful! 9
Design: Representations RESTful APIs should offer several resprentations: > XML for respecting the EPCIS standard. > HTML for browsability. > JSON for Web (e.g. Javascript) integration. > Atom feeds for subscription to queries. > The right representation for the right use case through “HTTP content negotiation” 10
Implementation: Which REST Framework? Major (Java, JAX-RS) frameworks: > Apache CFX, RestEasy, Apache Wink > Restlet: – +/- One to one translation of Roy Fielding‘s thesis. [Field00] – + Great community, first framework. – Not a great support for JAX-RS. > Jersey: [ googlevolume.com/jax-rs-implementations ] – +/- Higher abstraction – + Good community. [Field00]: Fielding, Roy Thomas. “Architectural styles and the – + Ref. implementation of JAX-RS. design of network-based software architectures.” – + IDE support (Netbeans). University of California, Irvine, 2000. – + Integration with Grizzly (comet, etc.) 11
Implementation: Component Architecture RESTful EPCIS as a independent component: > + Can be plugged on top of any EPCIS (standard) implementation. > + Keeps the EPCIS WS-* interface safe. > - Computational overhead due to REST -> WS-* translation. 12
Benchmarking REST vs WS-* 13
[ www.flickr.com/photos/lpettinati ] A Mashup Tool for the Web of Things DEMONSTRATION 14
Demo: EPC Mashup Dashboard What are my current stock levels for this Chocolate? A Javascript (Google Web Toolkit) mashup for: > Product managers to get live business intelligence for their products > Consumers to better understand: Where is this Chocolate coming from? – Where is my product coming Where is the new one I from ordered? – What do people think about it, etc. 15
Delicious: delicious.com/misterdom/RESTfulEPCIS Blog: webofthings.com Dominique Guinard guinard.org SAP Research / ETH Zurich dominique.guinard at sap.com Mathias Mueller diuf.unifr.ch/softeng University of Fribourg, CH mathias.mueller at unifr.ch
Backup 17
The EPC Network in a Nutshell EPC (Electronic Product Code) Network: > Creating an “Internet of Things”. > Global standard network of RFID data. > Standardization from tags (TDS), readers (LLRP), aggregators (ALE), information system (EPCIS), etc. [ www.epcglobalinc.org/standards ] 18
19
Recommend
More recommend