odata unleashed

26
ODATA UNLEASHED! Let‟s Learn How to Exploit It

Upload: eswarscribd

Post on 10-Jul-2016

79 views

Category:

Documents


16 download

DESCRIPTION

ODATA complete

TRANSCRIPT

Page 1: OData Unleashed

ODATA UNLEASHED!

Let‟s Learn How to Exploit It

Page 2: OData Unleashed

About me

Boris Tsirulnik

[email protected]

Software Architect

Graduated in Computer Sciences – 2002

Working in SAP Labs Israel since 2003

Core expertise in Java, Eclipse and Android

Page 3: OData Unleashed

This session

Introduction to OData

OData Development Tools for Eclipse

Toss in a demo to make it look longer

OData Development Tools contribution to Eclipse

Ask questions any time

Page 4: OData Unleashed

Technology Tipping Point Requires New IT

Approach

Growing new communities of

agile developers

Expansion of business data and

decision makers

Simple access to complex

enterprise systems

Manage and control mission

critical systems AND deploy

innovative solutions

New devices and experiences

Consumer innovations

in the enterprise

Page 5: OData Unleashed

What is OData?

GET

POST

PUT

DELETE

HTTP

RESTFUL

ATOM

JSON

Consumers Producers

Clients Servers

Page 6: OData Unleashed

What is OData? “SQL for the web” metaphor

OData can be used to access table-

like structures similar to the way SQL

does

Entity Data Model (EDM) to

describe OData Services

Each entity can support Create, Read,

Update, and Delete (CRUD) operations

Can navigate relationships

Page 7: OData Unleashed

What is OData? “SQL for the web” metaphor

OData Service

Entity Type

Function Import

GET method

POST method

PUT method

DELETE method

Database Schema

Database Table

Stored Procedure

SELECT statement

INSERT statement

UPDATE statement

DELETE statement

OData SQL/Database

=

=

=

=

=

=

=

Page 8: OData Unleashed

What is OData? OData in Design-time (Model)

Page 9: OData Unleashed

What is OData? OData in Design-time (Entity Data Model )

EntityTypes – data model definitions(for example customer, product), structured types consisting of list of properties (simple or complex)

Complex Types - structured types also consisting of a list of properties but with no key

EntitySets – collections of Entities

Associations - define the relationship between two or more Entity Types

Navigation Properties - special properties on Entity Types which are bound to a specific association and can be used to refer to associations of an entity

Page 10: OData Unleashed

What is OData? OData in Design-time (the metadata of OData)

Page 11: OData Unleashed

What is OData? OData in Run-time

GET http://odata.netflix.com/v2/Catalog/Genres

GET http://odata.netflix.com/v2/Catalog/Genres('Romantic%20Movies')

GET http://odata.netflix.com/v2/Catalog/Genres('Romantic%20Movies')/Titles

GET http://odata.netflix.com/v2/Catalog/Titles('ApSU3')

http://odata.netflix.com/v2/Catalog/People?$filter=Name%20eq%20'christopher%20nolan„

http://odata.netflix.com/v2/Catalog/People?$filter=Name%20eq%20'christopher%20nolan'

&$expand=Awards,TitlesDirected&$format=json

Page 12: OData Unleashed

Why OData?

PRO

PRIET

RY

PRO

PRIET

RY

PRO

PRIET

RY

XML

ATOM

JSON

Data Structure

Query Syntax

Possible Actions

Documentation

OD

ATA

O

DATA

O

DATA

Page 13: OData Unleashed

Why OData?

The OData Protocol is different from other REST-

based web service approaches in that it provides a

uniform way to describe both the data and the data

model

Page 14: OData Unleashed

OData Development Tools for Eclipse Motivation

Lower the barrier for developers to produce and

consume OData

Enable developers to extend the tools for different

environments (Android, PHP)

Page 15: OData Unleashed

OData Development Tools for Eclipse Features

Model new OData services

Visualize and explore existing OData services

Consume existing OData services in Java

Starter Application

Semantic Proxies

Java Client Library

Page 16: OData Unleashed

OData Development Tools for Eclipse Extensibility

Extend the existing Java Toolkit

Starter Applications

Create new consumption Toolkits

Starter Applications

Semantic Proxies

Add support for additional model import sources (e.g.

Excel spreadsheet, Database schema, etc.)

Page 17: OData Unleashed

Demo

Page 18: OData Unleashed

OData Development Tools for Eclipse Open Source Contribution

SAP plans to contribute these tools to the Eclipse

community

We are looking for mentors from Eclipse Architecture

Council

Page 19: OData Unleashed

Stuff I Didn‟t Cover

How to create OData Producer

Advanced OData features

Service Operations (Function Import)

URI query options ($top, $orderby, $expand etc.)

Batch operations

Security

Page 20: OData Unleashed

URI Conventions

URI Used for Example

$links Get all associations between

entries

http://localhost:8080/odata_exam

ple/odatajpa.svc/SupplierParts(1L)/

$links/part

$orderby Order data based on desc or

asc (default) options

http://localhost:8080/odata_exam

ple/odatajpa.svc/SupplierParts?$or

derby=quantity desc

$top Return first N items of the set http://localhost:8080/odata_exam

ple/odatajpa.svc/SupplierParts?$or

derby=quantity desc&$top=4

$skip Skip the first N records of the

entity set and get next

http://localhost:8080/odata_exam

ple/odatajpa.svc/SupplierParts?$ski

p=2&$top=2

$filter Select only subset of entities that

match the predicates provided –

rich set of operators and

functions

http://localhost:8080/odata_exam

ple/odatajpa.svc/SupplierParts?$filt

er=(quantity gt 200 and quantity lt

300) or shipperId eq 10

Page 21: OData Unleashed

URI Conventions

URI Used for Example

$expand Eagerly load associations

inline

http://localhost:8080/odata_example

/odatajpa.svc/Supplier?$expand=sup

plierParts

$format Specify what media type

to be used for

response(Atom/Xml/Json)

http://localhost:8080/odata_example

/odatajpa.svc/Supplier?$expand=sup

plierParts&$format=Json

$select Return only subset of

properties

http://localhost:8080/odata_example

/odatajpa.svc/Supplier?$select=suppli

erCity, supplierId

$inlineco

unt

Response should include

the count on entities after

applying $filter. Valid

values are allpages/none

http://localhost:8080/odata_example

/odatajpa.svc/Supplier?$inlinecount=al

lpages

<m:count>16</m:count>

Page 22: OData Unleashed

Batch Operations

OData supports executing multiple operations sent

in a single HTTP request through the use of Batching

The batch requests can be sent as POST with the

path containing $batch

OData Batch Request is represented as a Multipart

MIME v1.0 message

Page 23: OData Unleashed

The future of OData

Currently the standard is continuing to evolve

The Open Data Protocol specification is currently

available under the Microsoft Open Specification

Promise (OSP), allowing third parties, including open

source projects, to build Data Services for any runtime

as well as clients to consume such services.

OASIS Technical committee is in the process to

standardize OData as an OASIS standard:

https://www.oasis-open.org/committees/odata/

Page 24: OData Unleashed

Want to know more?

Open Data Protocol:

http://www.odata.org

Page 25: OData Unleashed

Thank you

Contact information:

Boris Tsirulnik

Software Architect

Technology & Innovation Platform

SAP Labs Israel Ltd.

[email protected]

Page 26: OData Unleashed

No part of this publication may be reproduced or transmitted in any form or for any purpose without

the express permission of SAP AG. The information contained herein may be changed without prior

notice.

Some software products marketed by SAP AG and its distributors contain proprietary software

components of other software vendors.

Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft

Corporation.

IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z,

System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries, eServer, z/VM, z/OS, i5/OS,

S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture,

POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes,

BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel

Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or

registered trademarks of IBM Corporation.

Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.

Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered

trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Oracle is a registered trademark of Oracle Corporation.

UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.

Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are

trademarks or registered trademarks of Citrix Systems, Inc.

HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web

Consortium, Massachusetts Institute of Technology.

Java is a registered trademark of Sun Microsystems, Inc.

JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology

invented and implemented by Netscape.

SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects Explorer, StreamWork,

and other SAP products and services mentioned herein as well as their respective logos are trademarks

or registered trademarks of SAP AG in Germany and other countries.

© 2013 SAP AG. All rights reserved

Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects Software Ltd. Business Objects is an SAP company.

Sybase and Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere, and other Sybase products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Sybase, Inc. Sybase is an SAP company.

All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose without the express prior written permission of SAP AG.

This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments, and functionalities of the SAP® product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. Please note that this document is subject to change and may be changed by SAP at any time without notice.

SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.

SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation shall not apply in cases of intent or gross negligence.

The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages.