Consuming DataFrom Many PlatformsThe Benefits of ODataEric D. BoydDirector, Chicago + Cloud Practice
Introduction Eric D. Boyd 15 Years in Technology
I’m From Here
I Moved Here
I Work Here
I Work On
I Blog @ ericdboyd.com
I Tweet @EricDBoyd
Agenda Data What is OData? Use OData
DataThe Good Guy and Villain
7 Pitfalls of Enterprise Application Integration1.   Constant change2.   Shortage of EAI experts3.   Competing standards4....
“Every two days, we create asmuch information as we did fromthe dawn of civilization up until2003. That’s something like f...
Growth of Web APIs   http://blog.programmableweb.com/2011/03/08/3000-web-apis/
Twitter API 600,000 developers 900,000 applications 13 billion API requests each and every daySource: The Next Web
What If? Simple, Well-Known Protocol Simple, Well-Known Formats Platform Independence Device Independence Existing Infrast...
ODataThe Hero
REST An architectural style for building loosely coupled systems    defined by a set of very general constraints (principl...
What Is OData? Open Data Protocol REST protocol for resource-based services Understood Web Technologies   HTTP   Atom   JS...
HTTP Networking protocol for distributed, collaborative, hypermedia information systems Request-Response protocol in the c...
Atom Atom applies to a pair of related standards   Atom Syndication Format: an XML language used for   web feeds   Atom Pu...
<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xml:base=http://services.odata.org/OData/OData.svc/   xmlns:d...
JSON JavaScript Object Notation Lightweight Data Interchange Language Independent Alternative to XML
JSON vs XMLJSON                        XML{                           <person>    "firstName": "John",        <firstName>J...
URIhttp://services.odata.org/OData/OData.svc_______________________________________/                    |             serv...
OData Is… Uniform representation of structured data   Atom, JSON Uniform URI conventions   Navigation, filtering, sorting,...
Another Standard?
How Can I UseOData?
Locating ResourcesEntity-Set       /CustomersSingle Entity    /Customers(‘ALFKI’)Member           /Customers(‘ALFKI’)/Cont...
Querying and Formatting OptionsFiltering   /Customers?$filter=CustomerID eq ‘ALFKI’Sorting     /Customers?$orderby=Custome...
Filtering and OperatorsOperation               C#    OData   ExampleOperation Ordering      (…)   (…)     (x add y) eq zNo...
How Can I CreateOData?
What about theCloud?
Takeaways OData is a platform and device independent solution for working with data Check out http://odata.org   SDK, Arti...
Resources OData Excel Plug-in   http://www.powerpivot.com/ LINQPad   http://www.linqpad.net Debugger Canvas   http://msdn....
Q&A
Other Sessions Overview of the Windows Azure DataMarket   Imagination C/D, Next Session Architecting for Massive Scalabili...
http://www.AzureStudyGroup.com
Thank You!Eric D. BoydDirector, Chicago + Cloud PracticeCentareEmail: eric.boyd@centare.comTwitter: www.twitter.com/EricDB...
Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of .NET 2011 - August 5, 2011
Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of .NET 2011 - August 5, 2011
Upcoming SlideShare
Loading in …5
×

Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of .NET 2011 - August 5, 2011

1,105 views

Published on

The amount of data stored today is growing at a rapid rate. However, data is only valuable if it is accessible and can be consumed by people and systems. OData is an open protocol for sharing data that is positioned to solve this problem. OData uses the standard HTTP protocol using REST principles to make data accessible and has huge industry momentum with rapid adoption growth. In this session, we will explore what OData is all about and how to expose relational and non-relational data as OData using WCF Data Services. We will then walkthrough developing apps to consume the OData feeds from multiple clients including mobile devices. Finally, we will take a look at how you can benefit from using Azure to publish your data with OData services.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,105
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of .NET 2011 - August 5, 2011

  1. 1. Consuming DataFrom Many PlatformsThe Benefits of ODataEric D. BoydDirector, Chicago + Cloud Practice
  2. 2. Introduction Eric D. Boyd 15 Years in Technology
  3. 3. I’m From Here
  4. 4. I Moved Here
  5. 5. I Work Here
  6. 6. I Work On
  7. 7. I Blog @ ericdboyd.com
  8. 8. I Tweet @EricDBoyd
  9. 9. Agenda Data What is OData? Use OData
  10. 10. DataThe Good Guy and Villain
  11. 11. 7 Pitfalls of Enterprise Application Integration1. Constant change2. Shortage of EAI experts3. Competing standards4. EAI is a tool paradigm5. Building interfaces is an art6. Loss of detail7. Accountability
  12. 12. “Every two days, we create asmuch information as we did fromthe dawn of civilization up until2003. That’s something like fiveExabytes of data.”--Eric Schmidt
  13. 13. Growth of Web APIs http://blog.programmableweb.com/2011/03/08/3000-web-apis/
  14. 14. Twitter API 600,000 developers 900,000 applications 13 billion API requests each and every daySource: The Next Web
  15. 15. What If? Simple, Well-Known Protocol Simple, Well-Known Formats Platform Independence Device Independence Existing Infrastructure
  16. 16. ODataThe Hero
  17. 17. REST An architectural style for building loosely coupled systems defined by a set of very general constraints (principles) the Web (URI/HTTP/HTML/XML) is an instance of this style The Web used correctly (i.e., not using the Web as transport) HTTP is built according to RESTful principles services are built on top of Web standards without misusing them most importantly, HTTP is an application protocol (not a transport protocol) Anything that uses HTTP and XML (XML without SOAP) XML-RPC was the first approach for this violates REST because there is no uniform interface
  18. 18. What Is OData? Open Data Protocol REST protocol for resource-based services Understood Web Technologies HTTP Atom JSON Use URIs for resource identification and commits It’s the Web for Data and Resources!
  19. 19. HTTP Networking protocol for distributed, collaborative, hypermedia information systems Request-Response protocol in the client-server computing model Application Layer protocol Resources are identified and located by URIs 9 Verbs HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, C ONNECT, PATCH Headers Status Codes
  20. 20. Atom Atom applies to a pair of related standards Atom Syndication Format: an XML language used for web feeds Atom Publishing Protocol (AtomPub or APP): a simple HTTP-based protocol for creating and updating web resources
  21. 21. <?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xml:base=http://services.odata.org/OData/OData.svc/ xmlns:d=http://schemas.microsoft.com/ado/2007/08/dataservices xmlns:m=http://schemas.microsoft.com/ado/2007/08/dataservices/metadata xmlns="http://www.w3.org/2005/Atom"> <title type="text">Categories</title> <id>http://services.odata.org/OData/OData.svc/Categories</id> <updated>2010-03-10T08:38:14Z</updated> <link rel="self" title="Categories" href="Categories" /> <entry> <id>http://services.odata.org/OData/OData.svc/Categories(0)</id> <title type="text">Food</title> <updated>2010-03-10T08:38:14Z</updated> <author> <name /> </author> <link rel="edit" title="Category" href="Categories(0)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products" type="application/atom+xml;type=feed" title="Products" href="Categories(0)/Products" /> <category term="ODataDemo.Category" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <content type="application/xml"> <m:properties> <d:ID m:type="Edm.Int32">0</d:ID> <d:Name>Food</d:Name> </m:properties> </content> </entry> <!-- <entry> elements representing additional Categories go here --></feed>
  22. 22. JSON JavaScript Object Notation Lightweight Data Interchange Language Independent Alternative to XML
  23. 23. JSON vs XMLJSON XML{ <person> "firstName": "John", <firstName>John</firstName> "lastName": "Smith", <lastName>Smith</lastName> "age": 25, <age>25</age> "address": <address> { <city>New York</city> <state>NY</state> "city": "New York", </address> "state": "NY", </person> }}
  24. 24. URIhttp://services.odata.org/OData/OData.svc_______________________________________/ | service root URIhttp://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name_______________________________________/ __________________/ _________________/ | | | service root URI resource path query options
  25. 25. OData Is… Uniform representation of structured data Atom, JSON Uniform URI conventions Navigation, filtering, sorting, paging, etc. Uniform operations GET, POST, PUT/MERGE, DELETE
  26. 26. Another Standard?
  27. 27. How Can I UseOData?
  28. 28. Locating ResourcesEntity-Set /CustomersSingle Entity /Customers(‘ALFKI’)Member /Customers(‘ALFKI’)/ContactNameLink Traversal /Customers(‘ALFKI’)/OrdersDeep Members /Customers(‘ALFKI’)/Orders(10643)/ShipNameRaw Values /Customers(‘ALFKI’)/Orders(10643)/ShipName/$value
  29. 29. Querying and Formatting OptionsFiltering /Customers?$filter=CustomerID eq ‘ALFKI’Sorting /Customers?$orderby=CustomerIDLimiting /Customers?$top=10Paging /Customers?$top=10&$skip=200 /Customers?$orderby=CustomerID&$skiptoken=ALFKIExpansion /Customers?$expand=OrdersFormat /Customers?$format=jsonCount /Customers?$inlinecountShaping /Customers?$select=CustomerID,ContactName
  30. 30. Filtering and OperatorsOperation C# OData ExampleOperation Ordering (…) (…) (x add y) eq zNot ! not not xAnd && and x and yOr || or x or yMultiply * mul x mul yDivide / div x div yModulus % mod x mod yAdd + add x add ySubtract - sub x sub yLess than < lt x lt yGreater than > gt x gt yLess than or equal <= le x le yGreater than or equal >= ge x ge yEquals == eq x eq yNot equals != ne x ne y
  31. 31. How Can I CreateOData?
  32. 32. What about theCloud?
  33. 33. Takeaways OData is a platform and device independent solution for working with data Check out http://odata.org SDK, Articles, Videos, Documentation, Samples WCF Data Services http://msdn.microsoft.com/en-us/library/cc668792.aspx Build and Consume OData services!
  34. 34. Resources OData Excel Plug-in http://www.powerpivot.com/ LINQPad http://www.linqpad.net Debugger Canvas http://msdn.microsoft.com/en- us/devlabs/debuggercanvas
  35. 35. Q&A
  36. 36. Other Sessions Overview of the Windows Azure DataMarket Imagination C/D, Next Session Architecting for Massive Scalability Imagination A/B, Tomorrow 9:10AM-10:10AM Making $$$ with Windows Phone Imagination C/D, Tomorrow 3:00PM-4:00PM
  37. 37. http://www.AzureStudyGroup.com
  38. 38. Thank You!Eric D. BoydDirector, Chicago + Cloud PracticeCentareEmail: eric.boyd@centare.comTwitter: www.twitter.com/EricDBoydBlog: www.ericdboyd.com

×