SlideShare uma empresa Scribd logo
1 de 40
Consuming Data
From Many Platforms
The Benefits of OData

Eric D. Boyd
Director, 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
Data
The Good Guy and Villain
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
“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
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 day

Source: The Next Web
What If?
 Simple, Well-Known Protocol
 Simple, Well-Known Formats
 Platform Independence
 Device Independence
 Existing Infrastructure
OData
The Hero
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
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!
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
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
<?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>
JSON
 JavaScript Object Notation
 Lightweight Data Interchange
 Language Independent
 Alternative to XML
JSON vs XML

JSON                        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>
    }
}
URI



http://services.odata.org/OData/OData.svc
_______________________________________/
                    |
             service root URI




http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name
_______________________________________/ __________________/ _________________/
                   |                                |                    |
             service root URI                  resource path        query options
OData Is…
 Uniform representation of structured data
   Atom, JSON


 Uniform URI conventions
   Navigation, filtering, sorting, paging, etc.


 Uniform operations
   GET, POST, PUT/MERGE, DELETE
Another Standard?
How Can I Use
OData?
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
Querying and Formatting Options
Filtering   /Customers?$filter=CustomerID eq ‘ALFKI’
Sorting     /Customers?$orderby=CustomerID
Limiting    /Customers?$top=10
Paging      /Customers?$top=10&$skip=200
            /Customers?$orderby=CustomerID&$skiptoken=ALFKI
Expansion   /Customers?$expand=Orders
Format      /Customers?$format=json
Count       /Customers?$inlinecount
Shaping     /Customers?$select=CustomerID,ContactName
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
How Can I Create
OData?
What about the
Cloud?
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!
Resources
 OData Excel Plug-in
   http://www.powerpivot.com/


 LINQPad
   http://www.linqpad.net


 Debugger Canvas
   http://msdn.microsoft.com/en-
   us/devlabs/debuggercanvas
Q&A
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
http://www.AzureStudyGroup.com
Thank You!


Eric D. Boyd
Director, Chicago + Cloud Practice
Centare

Email: eric.boyd@centare.com
Twitter: www.twitter.com/EricDBoyd
Blog: www.ericdboyd.com
Consuming Data From Many Platforms: The Benefits of OData - St. Louis Day of .NET 2011 - August 5, 2011

Mais conteúdo relacionado

Destaque

Moni jaiswal resume
Moni jaiswal resumeMoni jaiswal resume
Moni jaiswal resumeJaiswal Moni
 
Setting Your Data Free With OData
Setting Your Data Free With ODataSetting Your Data Free With OData
Setting Your Data Free With ODataBruce Johnson
 
OData for iOS developers
OData for iOS developersOData for iOS developers
OData for iOS developersGlen Gordon
 
OData and SharePoint
OData and SharePointOData and SharePoint
OData and SharePointSanjay Patel
 
jQuery and OData - Perfect Together
jQuery and OData - Perfect TogetherjQuery and OData - Perfect Together
jQuery and OData - Perfect TogetherDavid Hoerster
 
Daniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backendDaniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backendDaniel Ridder
 
Delivering a Linked Data warehouse and realising the power of graphs
Delivering a Linked Data warehouse and realising the power of graphsDelivering a Linked Data warehouse and realising the power of graphs
Delivering a Linked Data warehouse and realising the power of graphsBen Gardner
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data AccessPat Patterson
 
OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)Apigee | Google Cloud
 
JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017Luigi Fugaro
 
Building Self Documenting HTTP APIs with CQRS
Building Self Documenting HTTP APIs with CQRSBuilding Self Documenting HTTP APIs with CQRS
Building Self Documenting HTTP APIs with CQRSDerek Comartin
 
Semantic blockchain
Semantic blockchainSemantic blockchain
Semantic blockchainBen Gardner
 

Destaque (16)

OData
ODataOData
OData
 
Moni jaiswal resume
Moni jaiswal resumeMoni jaiswal resume
Moni jaiswal resume
 
Setting Your Data Free With OData
Setting Your Data Free With ODataSetting Your Data Free With OData
Setting Your Data Free With OData
 
OData for iOS developers
OData for iOS developersOData for iOS developers
OData for iOS developers
 
OData and SharePoint
OData and SharePointOData and SharePoint
OData and SharePoint
 
jQuery and OData - Perfect Together
jQuery and OData - Perfect TogetherjQuery and OData - Perfect Together
jQuery and OData - Perfect Together
 
Daniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backendDaniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backend
 
OData Fundamental
OData FundamentalOData Fundamental
OData Fundamental
 
A Look at OData
A Look at ODataA Look at OData
A Look at OData
 
Delivering a Linked Data warehouse and realising the power of graphs
Delivering a Linked Data warehouse and realising the power of graphsDelivering a Linked Data warehouse and realising the power of graphs
Delivering a Linked Data warehouse and realising the power of graphs
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data Access
 
Practical OData
Practical ODataPractical OData
Practical OData
 
OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)OData Introduction and Impact on API Design (Webcast)
OData Introduction and Impact on API Design (Webcast)
 
JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017
 
Building Self Documenting HTTP APIs with CQRS
Building Self Documenting HTTP APIs with CQRSBuilding Self Documenting HTTP APIs with CQRS
Building Self Documenting HTTP APIs with CQRS
 
Semantic blockchain
Semantic blockchainSemantic blockchain
Semantic blockchain
 

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

Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Woodruff Solutions LLC
 
Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Woodruff Solutions LLC
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
 
Java Technology
Java TechnologyJava Technology
Java Technologyifnu bima
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Breaking down data silos with the open data protocol
Breaking down data silos with the open data protocolBreaking down data silos with the open data protocol
Breaking down data silos with the open data protocolWoodruff Solutions LLC
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
MuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and ODataMuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and ODataPace Integration
 
Information Intermediaries
Information IntermediariesInformation Intermediaries
Information IntermediariesDave Reynolds
 
Mobility & Data Strategies
Mobility & Data StrategiesMobility & Data Strategies
Mobility & Data StrategiesSam Basu
 
SAP ODATA Overview & Guidelines
SAP ODATA Overview & GuidelinesSAP ODATA Overview & Guidelines
SAP ODATA Overview & GuidelinesAshish Saxena
 
AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?Jim Duffy
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...jpalley
 
OData Across Boundaries
OData Across BoundariesOData Across Boundaries
OData Across BoundariesSam Basu
 
BioIT Europe 2010 - BioCatalogue
BioIT Europe 2010 - BioCatalogueBioIT Europe 2010 - BioCatalogue
BioIT Europe 2010 - BioCatalogueBioCatalogue
 

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

Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)
 
Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
 
OData – Super Cola W3
OData – Super Cola W3OData – Super Cola W3
OData – Super Cola W3
 
Java Technology
Java TechnologyJava Technology
Java Technology
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Breaking down data silos with the open data protocol
Breaking down data silos with the open data protocolBreaking down data silos with the open data protocol
Breaking down data silos with the open data protocol
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
MuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and ODataMuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and OData
 
Information Intermediaries
Information IntermediariesInformation Intermediaries
Information Intermediaries
 
Mobility & Data Strategies
Mobility & Data StrategiesMobility & Data Strategies
Mobility & Data Strategies
 
Breaking down data silos with OData
Breaking down data silos with ODataBreaking down data silos with OData
Breaking down data silos with OData
 
SAP ODATA Overview & Guidelines
SAP ODATA Overview & GuidelinesSAP ODATA Overview & Guidelines
SAP ODATA Overview & Guidelines
 
AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?AngularJS: What's the Big Deal?
AngularJS: What's the Big Deal?
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
 
Real-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalRReal-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalR
 
OData Across Boundaries
OData Across BoundariesOData Across Boundaries
OData Across Boundaries
 
BioIT Europe 2010 - BioCatalogue
BioIT Europe 2010 - BioCatalogueBioIT Europe 2010 - BioCatalogue
BioIT Europe 2010 - BioCatalogue
 
OData Services
OData ServicesOData Services
OData Services
 

Mais de Eric D. Boyd

Rock, Paper, Scissors: Winning Big with Game Playing Cloud Bots
Rock, Paper, Scissors: Winning Big with Game Playing Cloud BotsRock, Paper, Scissors: Winning Big with Game Playing Cloud Bots
Rock, Paper, Scissors: Winning Big with Game Playing Cloud BotsEric D. Boyd
 
Windows Azure Kick Start - Common Scenarios
Windows Azure Kick Start - Common ScenariosWindows Azure Kick Start - Common Scenarios
Windows Azure Kick Start - Common ScenariosEric D. Boyd
 
Windows Azure Kick Start - Explore Storage and SQL Azure
Windows Azure Kick Start - Explore Storage and SQL AzureWindows Azure Kick Start - Explore Storage and SQL Azure
Windows Azure Kick Start - Explore Storage and SQL AzureEric D. Boyd
 
Windows Azure Kick Start - Windows Azure Compute
Windows Azure Kick Start - Windows Azure ComputeWindows Azure Kick Start - Windows Azure Compute
Windows Azure Kick Start - Windows Azure ComputeEric D. Boyd
 
Windows Azure Kick Start - Get Started in Cloud Computing
Windows Azure Kick Start - Get Started in Cloud ComputingWindows Azure Kick Start - Get Started in Cloud Computing
Windows Azure Kick Start - Get Started in Cloud ComputingEric D. Boyd
 
Windows Azure Kick Start - Welcome
Windows Azure Kick Start - WelcomeWindows Azure Kick Start - Welcome
Windows Azure Kick Start - WelcomeEric D. Boyd
 
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012Eric D. Boyd
 
HTML5 + Cloud: Reach Everyone, Everywhere
HTML5 + Cloud: Reach Everyone, EverywhereHTML5 + Cloud: Reach Everyone, Everywhere
HTML5 + Cloud: Reach Everyone, EverywhereEric D. Boyd
 
Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011
Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011
Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011Eric D. Boyd
 
Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011
Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011
Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011Eric D. Boyd
 
Testing the User Interface - Coded UI Tests with Visual Studio 2010
Testing the User Interface - Coded UI Tests with Visual Studio 2010Testing the User Interface - Coded UI Tests with Visual Studio 2010
Testing the User Interface - Coded UI Tests with Visual Studio 2010Eric D. Boyd
 

Mais de Eric D. Boyd (11)

Rock, Paper, Scissors: Winning Big with Game Playing Cloud Bots
Rock, Paper, Scissors: Winning Big with Game Playing Cloud BotsRock, Paper, Scissors: Winning Big with Game Playing Cloud Bots
Rock, Paper, Scissors: Winning Big with Game Playing Cloud Bots
 
Windows Azure Kick Start - Common Scenarios
Windows Azure Kick Start - Common ScenariosWindows Azure Kick Start - Common Scenarios
Windows Azure Kick Start - Common Scenarios
 
Windows Azure Kick Start - Explore Storage and SQL Azure
Windows Azure Kick Start - Explore Storage and SQL AzureWindows Azure Kick Start - Explore Storage and SQL Azure
Windows Azure Kick Start - Explore Storage and SQL Azure
 
Windows Azure Kick Start - Windows Azure Compute
Windows Azure Kick Start - Windows Azure ComputeWindows Azure Kick Start - Windows Azure Compute
Windows Azure Kick Start - Windows Azure Compute
 
Windows Azure Kick Start - Get Started in Cloud Computing
Windows Azure Kick Start - Get Started in Cloud ComputingWindows Azure Kick Start - Get Started in Cloud Computing
Windows Azure Kick Start - Get Started in Cloud Computing
 
Windows Azure Kick Start - Welcome
Windows Azure Kick Start - WelcomeWindows Azure Kick Start - Welcome
Windows Azure Kick Start - Welcome
 
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
Moving Web Apps to the Cloud - Iowa User Group Tour, Feb 2012
 
HTML5 + Cloud: Reach Everyone, Everywhere
HTML5 + Cloud: Reach Everyone, EverywhereHTML5 + Cloud: Reach Everyone, Everywhere
HTML5 + Cloud: Reach Everyone, Everywhere
 
Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011
Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011
Architecting for Massive Scalability - St. Louis Day of .NET 2011 - Aug 6, 2011
 
Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011
Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011
Understanding the Value of the Cloud - Centare Lunch & Learn - June 2, 2011
 
Testing the User Interface - Coded UI Tests with Visual Studio 2010
Testing the User Interface - Coded UI Tests with Visual Studio 2010Testing the User Interface - Coded UI Tests with Visual Studio 2010
Testing the User Interface - Coded UI Tests with Visual Studio 2010
 

Último

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
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

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...
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

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

  • 1. Consuming Data From Many Platforms The Benefits of OData Eric D. Boyd Director, Chicago + Cloud Practice
  • 2. Introduction Eric D. Boyd 15 Years in Technology
  • 7. I Blog @ ericdboyd.com
  • 9.
  • 10. Agenda Data What is OData? Use OData
  • 11. Data The Good Guy and Villain
  • 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
  • 16. What If? Simple, Well-Known Protocol Simple, Well-Known Formats Platform Independence Device Independence Existing Infrastructure
  • 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
  • 22. <?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>
  • 23. JSON JavaScript Object Notation Lightweight Data Interchange Language Independent Alternative to XML
  • 24. JSON vs XML JSON 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> } }
  • 25. URI http://services.odata.org/OData/OData.svc _______________________________________/ | service root URI http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name _______________________________________/ __________________/ _________________/ | | | service root URI resource path query options
  • 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
  • 28. How Can I Use OData?
  • 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
  • 30. Querying and Formatting Options Filtering /Customers?$filter=CustomerID eq ‘ALFKI’ Sorting /Customers?$orderby=CustomerID Limiting /Customers?$top=10 Paging /Customers?$top=10&$skip=200 /Customers?$orderby=CustomerID&$skiptoken=ALFKI Expansion /Customers?$expand=Orders Format /Customers?$format=json Count /Customers?$inlinecount Shaping /Customers?$select=CustomerID,ContactName
  • 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
  • 32. How Can I Create OData?
  • 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!
  • 35. Resources OData Excel Plug-in http://www.powerpivot.com/ LINQPad http://www.linqpad.net Debugger Canvas http://msdn.microsoft.com/en- us/devlabs/debuggercanvas
  • 36. Q&A
  • 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