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.
12. 7 Pitfalls of Enterprise Application Integration
1. Constant change
2. Shortage of EAI experts
3. Competing standards
4. EAI is a tool paradigm
5. Building interfaces is an art
6. Loss of detail
7. Accountability
13. “Every two days, we create as
much information as we did from
the dawn of civilization up until
2003. That’s something like five
Exabyte's of data.”
--Eric Schmidt
14. Growth of Web APIs
http://blog.programmableweb.com/2011/03/08/3000-web-apis/
15. Twitter API
600,000 developers
900,000 applications
13 billion API requests each and every day
Source: The Next Web
18. 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
19. 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!
20. 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
21. 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
26. OData Is…
Uniform representation of structured data
Atom, JSON
Uniform URI conventions
Navigation, filtering, sorting, paging, etc.
Uniform operations
GET, POST, PUT/MERGE, DELETE
29. Locating Resources
Entity-Set /Customers
Single Entity /Customers(‘ALFKI’)
Member /Customers(‘ALFKI’)/ContactName
Link Traversal /Customers(‘ALFKI’)/Orders
Deep Members /Customers(‘ALFKI’)/Orders(10643)/ShipName
Raw Values /Customers(‘ALFKI’)/Orders(10643)/ShipName/$value
31. Filtering and Operators
Operation C# OData Example
Operation Ordering (…) (…) (x add y) eq z
Not ! not not x
And && and x and y
Or || or x or y
Multiply * mul x mul y
Divide / div x div y
Modulus % mod x mod y
Add + add x add y
Subtract - sub x sub y
Less than < lt x lt y
Greater than > gt x gt y
Less than or equal <= le x le y
Greater than or equal >= ge x ge y
Equals == eq x eq y
Not equals != ne x ne y
34. 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!
37. 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
39. Thank You!
Eric D. Boyd
Director, Chicago + Cloud Practice
Centare
Email: eric.boyd@centare.com
Twitter: www.twitter.com/EricDBoyd
Blog: www.ericdboyd.com