Open Data Protocol * Han Wang 11/30/2012 *

Slides:



Advertisements
Similar presentations
Pierre-Johan CHARTRE Java EE - JAX-RS - Pierre-Johan CHARTRE
Advertisements

What Is Microsoft Marketplace DataMarket What Is Microsoft Marketplace DataMarket? Michael Stiefel
Reinventing using REST. Anything addressable by a URI is called a resource GET, PUT, POST, DELETE WebDAV (MOVE, LOCK)
Dhananjay Kumar
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
What are Web Services? How to use them?
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
#spsevents #spsphx SPS EVENTS PHX Know REST for the Query AN INTRODUCTION TO REST FOR SHAREPOINT 2013 ERIC J OSZAKIEWSKI, MCTS, MS, MCPS.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
With jQuery and AJAX Doncho Minkov Telerik Corporation Technical Trainer.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
T Sponsors Sameer Chabungbam Principal Program Manager, Microsoft Connector API Apps BizTalk Summit 2015 – London ExCeL London | April 13th & 14th.
1 Chapter 12 Working With Access 2000 on the Internet.
OData Data Sources Clients Web Browsers (Internet Explorer, Firefox, …) Web Browsers (Internet Explorer, Firefox, …) Mobile Phones (Android,
.NET Framework V3.5+ & RESTful web services Mike Taulty Developer & Platform Group Microsoft Ltd
Chapter 12: ADO.NET and ASP.NET Programming with Microsoft Visual Basic.NET, Second Edition.
Peoplesoft: Building and Consuming Web Services
RESTful Publish Subscribe Xiang Su
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
Service-Oriented Programming
Introduction to UDDI From: OASIS, Introduction to UDDI: Important Features and Functional Concepts.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
ODATA DELTAS Deltas provide a hypermedia-driven solution for retrieving changes to a given set of data.
OASIS ebXML Registry Standard Open Forum 2003 on Metadata Registries 10:30 – 11:15 January 20, 2003 Kathryn Breininger The Boeing Company Chair, OASIS.
ADO.NET DATA SERVICES Mike Taulty Developer & Platform Group Microsoft UK
 2004 Prentice Hall, Inc. All rights reserved. 1 Segment – 6 Web Server & database.
OData: There’s a Feed for That Pablo Castro Software Architect Microsoft Corporation
+ Information Systems and Databases 2.2 Organisation.
Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Kemal Baykal Rasim Ismayilov
1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd
Using OData Data Sources in SharePoint 2013 Solutions Hunter
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Web Services Martin Nečaský, Ph.D. Faculty of Mathematics and Physics Charles University in Prague, Czech Republic Summer 2014.
REST By: Vishwanath Vineet.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Implementing OData: How to Create a Feed for That Mike Flasko Lead Program Manager Microsoft Corporation
March 15 – 17, Las Vegas Sascha P. Corti Microsoft
OASIS ebXML Registry Standard Open Forum 2003 on Metadata Registries 10:30 – 11:15 January 20, 2003 Kathryn Breininger The Boeing Company Chair, OASIS.
ODATA DESIGN PRINCIPLES July 26, BUILD ON HTTP, REST OData is a RESTful HTTP Protocol Build on HTTP Entities modeled as Resources Relationships.
1 Chapter 22 World Wide Web (HTTP) Chapter 22 World Wide Web (HTTP) Mi-Jung Choi Dept. of Computer Science and Engineering
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
Windows Communication Foundation and Web Services
Better RESTFul API – Best Practices
Baoming Yu(于宝明) Software Engineer Wicresoft
An introduction to REST for SharePoint 2013
IBM Data Server Gateway for OData
Entity Framework 4 and WCF Data Services 4
WEB API.
Chapter 27 WWW and HTTP.
$, $$, $$$ API testing Edition
Pablo Castro Software Architect Microsoft Corporation
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Database Management Systems
WCF Data Services and Silverlight
BIOPAMA Data Management
.NET Framework V3.5+ & RESTful web services
Chengyu Sun California State University, Los Angeles
SDMX IT Tools SDMX Registry
Presentation transcript:

Open Data Protocol * Han Wang 11/30/2012 *

What “The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today.” [1] 11/30/2012Open Data Protocol1 [1]

What (cont.) Enables the creation of HTTP-based data services Identifies resources using URIs Publishes and edits resources using simple HTTP messages 11/30/2012Open Data Protocol2

Why Problem: web API’s are hardly uniform OData provides a uniform interface to expose, structure, query, and manipulate data – “Uniform” means operations are the same across any OData service OData also provides a uniform way to represent metadata 11/30/2012Open Data Protocol3

Basics Feeds: Collections of typed Entries Entries: structured records with keys A record has a list of Properties of primitive or complex types Entries may have related Entries or related Feeds through Links 11/30/2012Open Data Protocol4

Basics (cont.) A Service Document lists list all the top level feeds – May be formatted in Atom or JSON 11/30/2012Open Data Protocol5

Basics (cont.) A Service Metadata Document describes the shape of an OData service, the structure of its resources, the known links between resources, and the Service Operations exposed – Service Operations: simple, service-specific functions that accept input parameters and return entries or complex/primitive values. 11/30/2012Open Data Protocol6

Basics (cont.) 11/30/2012Open Data Protocol7

8 Entity Data Model (EDM): the abstract data model that MUST be used to describe the data exposed by an OData service Common Schema Definition Language (CSDL) defines an XML-based representation of the entity model exposed by an OData service. Data Model 11/30/2012Open Data Protocol

9 Entities – Instances of Entity Types – Structured records – Have named and typed properties and with Entity Keys – Grouped in Entity Sets Data Model (cont.) 11/30/2012Open Data Protocol

10 Complex Types – Structured types – Consist of a list of properties but with no key Data Model (cont.) 11/30/2012Open Data Protocol

11 Associations – Define the relationship between two or more Entity Types – Instances of associations are grouped in Association Sets Data Model (cont.) 11/30/2012Open Data Protocol

12 Navigation Properties – Special properties on Entity Types – Bound to a specific Association – Used to refer to associations of an entry Data Model (cont.) 11/30/2012Open Data Protocol

Service Requests Metadata requests – Service Document – Metadata Document Data requests – Individual entities – Individual properties – Collections of entities Query operations: filter, sort, paging, projection, etc. 11/30/2012Open Data Protocol13

Service Requests (cont.) Data modification – Create – Update – Delete … Operations – Actions – Functions 11/30/2012Open Data Protocol14

URL Conventions 11/30/2012Open Data Protocol15 Request the first two products in Category(1), ordered by Name: – Address the links between Category(1) and Products: – Request all products with the Name 'Milk' that also have a Price less than 2.55: – eq 'Milk' and Price lt '2.55M’

URL Conventions (cont.) 11/30/2012Open Data Protocol16 Request all products, because 9 mod 3 is 0: – 4 add 5 ) mod ( 4 sub 1 ) eq 0 Request all Customers with a CompanyName that contains ‘Alfreds’: – CompanyName) eq true Request just the Rating and ReleaseDate for the matching Products: –

Libraries 11/30/2012Open Data Protocol17

Ecosystem Consumers (processing OData) – Web browsers, OData Explorer, Excel 2010, LINQPad, Seasame, Tableau, Telerik RadGrid, etc. Applications (exposing OData) – SharePoint 2010, IBM WebSphere, Windows Azure Table Storage, SQL Server Reporting Services 11/30/2012Open Data Protocol18

Status Currently available under the Microsoft Open Specification Promise (OSP) – Allows third parties to build data services for any runtime as well as clients to consume such services. Microsoft and key partners have proposed an OASIS Technical committee to standardize OData as an OASIS standard. 11/30/2012Open Data Protocol19

Specifications 11/30/2012Open Data Protocol20 SpecificationDescription [OData:URI]Conventions for constructing URIs to identify the resources and metadata exposed by an OData service. [OData:Terms]Glossary of terms used by OData [OData:Operations]Defines the request types (retrieve, insert, update, delete, etc) and associated responses used by the OData protocol. An implementation can support some or all of the request types. [OData:ATOM]Defines an AtomPub representation for the payload of an OData request/response. [OData:JSON]Defines a JSON representation for the payload of an OData request/response. [OData:Batch]Extends the OData Operations specification to define a mechanism to enable a client of a data service to "batch" a group of requests and send that group/batch to the OData service in a single HTTP request.

Glossary Binary Large Object (BLOB): binary data stored as a single entity. Blobs are often videos, images, documents, etc. Collection: A Resource that contains a set of Member Resources as defined in [RFC 5023]. In OData, a Collection is represented as an Atom Feed or an array of JSON objects. CSDL: An XML language for describing Entity Data Models. See [CDSL] for additional information. Declared Property: A statically declared Property on an Entity or Complex Type. The value of a declared property is a primitive or complex type. Dynamic Property: An Entry may include additional (nullable) properties beyond its Declared Properties. The set of additional properties, and the type of each, may vary between Entry instances. Such additional properties are referred to as Dynamic Properties and do not have a representation in a Service Metadata Document. If an Entry does not include a value for a Dynamic Property named N, then the Entry must be treated as if it included N with a value of null. A Dynamic Property must not have the same name as a declared property on the same Entry. Entity Data Model: The abstract data model used by OData services. See the Abstract Data Model section of [OData: Core] additional information. Entry (Entry Resource): Members of a Collection, as defined by [RFC 5023]. In OData, Entries are represented as Atom Entry Documents, as described in [OData: Atom] or JSON objects, as described in [OData: JSON]. An Entry may represent an instance of an Open Entity Type if, in addition to Declared Properties, the entry includes Dynamic Properties. Feed: The representation of a Collection in Atom (see [OData: Atom]) or JSON (see [OData: JSON]) IRI: An Internationalized Resource Identifier as defined in [RFC3987]. Before an IRI found in a document used by HTTP, the IRI is first converted to a URI Link: Describes an association between two Entries. More specifically, the term refers to a unidirectional association or to one direction of a bidirectional association. Media Link Entry: A special kind of Entry Resource that contains metadata about a Media Resource, as defined in [RFC 5023]. Media Resource: Members of a Collection that have representations other than Atom Entry Documents or JSON objects. Member Resource: A Resource whose IRI is listed in a Collection, as defined in [RFC 5023] Navigation Property: A property of an Entry that represents a Link from the Entry to one or more related Entries. A Navigation Property is not a structural part of the Entry it belongs to. OData Data Namespace: The namespace used by OData services when representing data in XML-based formats. The URI identifying the namespace is Note: The next version of OData will likely support a more general odata.org-based namespace. OData Metadata Namespace: The namespace used by OData services when representing metadata in XML-based formats. The URI identifying the namespace is Note: The next version of OData will likely support a more general odata.org-based namespace. OData Service: A service which implements the Open Data Protocol (OData). Property: A generic term to represent a declared or dynamic property of an Entry. Representational state transfer (REST): REST is a set of principles or style of software architecture for distributed hypermedia systems such as the World Wide Web. OData applies the principles of REST whenever possible. Resource: A network-accessible data object or service identified by an IRI, as defined in [RFC 2616] Service Document: A document that describes the location and capabilities of one or more Collections, as described by [RFC 5023]. See [OData: Core] for additional information on using Service Documents with OData services. Service Metadata Document (Metadata Document): A CSDL that describes the data model (i.e. structure and organization of all the resources) exposed as HTTP endpoints by an OData service. See [OData: Core] for additional information. URI: A Uniform Resource Identifier as defined in [RFC3986] 11/30/2012Open Data Protocol21