OData: What s New with REST APIs for Your Database. Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress

Similar documents
Welcome to the Era of Open Analytics

Top 7 Data API Headaches (and How to Handle Them) Jeff Reser Data Connectivity & Integration Progress Software

WHITE PAPER JANUARY Creating REST APIs to Enable Your Connected World

Tour of Database Platforms as a Service. June 2016 Warner Chaves Christo Kutrovsky Solutions Architect

REST API Documentation Using OpenAPI (Swagger)

Progress DataDirect For Business Intelligence And Analytics Vendors

Data 101 Which DB, When. Joe Yong Azure SQL Data Warehouse, Program Management Microsoft Corp.

Introduction to RESTful Web Services. Presented by Steve Ives

Informatica Cloud Data Integration Winter 2017 December. What's New

From Single Purpose to Multi Purpose Data Lakes. Thomas Niewel Technical Sales Director DACH Denodo Technologies March, 2019

Spotfire Advanced Data Services. Lunch & Learn Tuesday, 21 November 2017

MAPR DATA GOVERNANCE WITHOUT COMPROMISE

Isomorphic Kotlin. Troy

2013 Cisco and/or its affiliates. All rights reserved. 1

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud

FAQs. Business (CIP 2.2) AWS Market Place Troubleshooting and FAQ Guide

API Connect. Arnauld Desprets - Technical Sale

CMIS An Industry Effort to Define a Service-Based Interoperability Standard for Content Management

CONSOLIDATING RISK MANAGEMENT AND REGULATORY COMPLIANCE APPLICATIONS USING A UNIFIED DATA PLATFORM

Etlworks Integrator cloud data integration platform

Increase Value from Big Data with Real-Time Data Integration and Streaming Analytics

Oracle APEX 18.1 New Features

Architectural challenges for building a low latency, scalable multi-tenant data warehouse

Data 101 Which DB, When Joe Yong Sr. Program Manager Microsoft Corp.

The Backend of OE Mobile in OpenEdge Mike Fechner, Consultingwerk Ltd. PUG Challenge Americas, June 2013

WHITEPAPER. MemSQL Enterprise Feature List

REST in Peace Mastering the JSDO with a Dynamic ABL backend. Mike Fechner, Consultingwerk Ltd.

CloudSwyft Learning-as-a-Service Course Catalog 2018 (Individual LaaS Course Catalog List)

Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)

Introduction to ArcGIS Server Architecture and Services. Amr Wahba

Lesson 14 SOA with REST (Part I)

Survey of the Azure Data Landscape. Ike Ellis

Azure Integration Services

REST. Dele Oyebande (Blue Sky ERP)

Making Data Integration Easy For Multiplatform Data Architectures With Diyotta 4.0. WEBINAR MAY 15 th, PM EST 10AM PST

ANY Data for ANY Application Exploring IBM Data Virtualization Manager for z/os in the era of API Economy

BigInsights and Cognos Stefan Hubertus, Principal Solution Specialist Cognos Wilfried Hoge, IT Architect Big Data IBM Corporation

Expose Existing z Systems Assets as APIs to extend your Customer Reach

Integrating Progress Rollbase with OpenEdge the REST of the story. Mike Fechner, Director, Consultingwerk Ltd.

Power BI on SAP HANA. by Gerhard Brueckl and Markus Begerow

Scalable Platform Management Forum. Forum Status 10/30/2014

Oracle RESTful Services A Primer for Database Administrators

State of the Dolphin Developing new Apps in MySQL 8

Take a Load Off with U2 RESTful Web Services. Nik Kesic, Lead Technical Support for Rocket U2

Sentinet for BizTalk Server SENTINET

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2

Integration and Extensibility

LOG8430: Architecture logicielle et conception avancée

Extend NonStop Applications with Cloud-based Services. Phil Ly, TIC Software John Russell, Canam Software

Big Data Technology Ecosystem. Mark Burnette Pentaho Director Sales Engineering, Hitachi Vantara

Modern Data Warehouse The New Approach to Azure BI

The Fn Project Open Source Serverless Computing

Introduction to Worklight Integration IBM Corporation

RAD Studio Product Address

Interoperable Cloud Storage with the CDMI Standard. Mark Carlson, SNIA TC and Oracle Co-Chair, SNIA Cloud Storage TWG

IBM Data Virtualization Manager for z/os Leverage data virtualization synergy with API economy to evolve the information architecture on IBM Z

Welcome! Power BI User Group (PUG) Copenhagen

SERVICE-ORIENTED COMPUTING

Developing Enterprise Services for Mobile Devices using Rational Software Architect / Worklight

Security and Performance advances with Oracle Big Data SQL

Esri and MarkLogic: Location Analytics, Multi-Model Data

Interoperable Cloud Storage with the CDMI Standard. Mark Carlson, SNIA TC and Oracle Chair, SNIA Cloud Storage TWG

Oskari Heikkinen. New capabilities of Azure Data Factory v2

Webspeed. I am back. Enhanced WebSpeed

Understanding the latent value in all content

Swimming in the Data Lake. Presented by Warner Chaves Moderated by Sander Stad

IBM API Connect: Introduction to APIs, Microservices and IBM API Connect

Developing with the Cloud

Analytics with IMS and QMF

Enterprise Data Catalog for Microsoft Azure Tutorial

Microsoft Azure Storage

Best practices for building a Hadoop Data Lake Solution CHARLOTTE HADOOP USER GROUP

RESTful CIM using the Open Data Protocol

Migrating traditional Java EE applications to mobile

Azure Logic Apps. The big picture. API Apps, Logic Apps & API Management

Connect and Transform Your Digital Business with IBM

BI ENVIRONMENT PLANNING GUIDE

VS10 WCF of Many Flavors When do I use which?

Alexander Klein. #SQLSatDenmark. ETL meets Azure

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved.

TECHNOLOGY SOLUTION EVOLUTION

Integrating the Progress Rollbase Portal into OpenEdge Applications. Mike Fechner, Director, Consultingwerk Ltd.

How to re-invent your IT Architecture. André Christ, Co-CEO LeanIX

Technology Strategy and Roadmap. October 2015

Let s say that hosting a cloudbased application is like car ownership

Microsoft vision for a new era

Lotus Technical Night School XPages and RDBMS

Syncsort DMX-h. Simplifying Big Data Integration. Goals of the Modern Data Architecture SOLUTION SHEET

Sentinet for Microsoft Azure SENTINET

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

Mike Fechner Director

SQL Server 2017 Power your entire data estate from on-premises to cloud

Example Architectures for Data Security and the GDPR

THE RISE OF. The Disruptive Data Warehouse

Azure Data Factory. Data Integration in the Cloud

Crystal Reports. Overview. Contents. How to report off a Teradata Database

IBM Db2 Event Store Simplifying and Accelerating Storage and Analysis of Fast Data. IBM Db2 Event Store

Transcription:

OData: What s New with REST APIs for Your Database Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress

Audio Bridge Options & Question Submission 2

OData: What s New with REST APIs for Your Database Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress

Agenda Modern Data Access Patterns Why are companies RESTifying databases? OData overview Exposing the Database Using OData Getting Started with OData Demo 4

Modern Data Access Patterns 5

Data Warehouses still the workhorse analytical engines Source: https://en.wikipedia.org/wiki/data_warehouse 6

Data Access for Data Lakes Analytical SQL Data Lake Mobile / Cloud {REST} 7

Common Data Lake Implementation Technologies Create Differing Requirements for Data Governance Hadoop distributions: Simplified data ingestion and storage with several processing options Data lake management ecosystem emerging Complex deployment and management Cloud-based block and object stores: Simplified data ingestion and storage Bring your own processing Nascent management and security ecosystem Database management systems: Optimal for certain data types and formats Data processing options expanding beyond SQL Scaling and cost may be challenges 8

9

Virtual Data Lake by REST Enabling Sources {REST} {REST} {REST} {REST} {REST} 10

Goal is to Connect data and not Collect REST APIs are accessible over the internet and thus are much more user/coder friendly REST is stateless and thus can easily be horizontally scaled since there is no session dependency As you monetize data, APIs offer a secure way to expose your data to users outside your organization REST APIs are more human-readable and thus more engaging Decoupling the code from the infrastructure will give the enterprise the flexibility to adopt newer technologies 11

Why are companies RESTifying databases? 12

Transition from SOAP to REST 13

SOAP vs REST XML SOAP JSON, XML, YAML etc. REST Uses WSDL to define interface Stateful Uses HTTP verbs (Get, Post, Put, Delete) Stateless 14

SOAP vs REST Source: Google Trends 15

SOAP vs REST Source: Google Trends 16

Use Cases for REST Enabling Databases 17

1. Expose Enterprise Data to SaaS/Cloud via HTTP HTTP / HTTPS Enterprise REST APIs Enterprise Data 18

REST APIs 2. Modernize Access to Enterprise Data Your DB {JSON} 19

REST APIs 2. Modernize Access to Enterprise Data Your DB {JSON} 20

REST APIs 2. Modern Data Access Your DB {JSON} 21

3. Additional Layer means Additional Control Limit direct access to your DB Throttling can help protect against resource monopolization Decoupling code from the database makes future transitions easier 22

Poll Question 1 Which of the following use cases are true for your organization? Your database needs to support modern languages such as JS, node.js, angular, python, etc. Sensitive data needs to stay within the firewall (GDPR, etc.) Enterprise Data needs to be available from new devices Modern Apps need REST end points for integration Other 23

Industry is moving towards REST APIs Cloud-Hosted Databases Google Cloud Azure Database.com IBM Cloudant On-Premises Databases Oracle REST Data Services Teradata REST API IBM DB2 Rest Services MarkLogic REST API 24

Poll Question 2 Which of the following databases are of interest to REST enable? Oracle SQL Server IBM DB2 Postgres MySQL 25

Poll Question 2 Part 2 Which of the following databases are of interest to REST enable? Amazon Redshift Hadoop Frameworks Teradata OpenEdge Other 26

But, every database and REST API is different OData is the Answer 27

OData Overview 28

What is OData? An open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way Started by Microsoft in 2007 Ratified as an ISO standard in Feb 2017 OASIS Standard since Feb 2014 Progress was the first member to join the OData Technical Committee 29 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.

OData is the standard for REST OData is essentially SQL for the web built on top of standard protocols HTTP, JSON & ATOM while leveraging the REST architecture style ODATA ODATA- The standard REST API JSON XML Mime HTTP(S) 30 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.

Broad Adoption for OData 31

Exposing the Database Using OData 32

OData Data Model Schema Entity Set Entity Entity Properties Entity Properties Navigation Properties Properties Navigation Properties Navigation Properties Customers Id: 2 Id: Name: 1 Mark Name: Status: Mark active Status: Orders: active Customers(1)/Orders Orders: Customers(1)/Orders Function Parameters Return Value Action Parameters 33

Mapping Databases to OData Database Construct Table Row Column Stored Procedure User Defined Function Primary Key Foreign Key OData Construct Entity Set Entity Property Action (or Function) Function Entity Key Navigation Property 34

Mapping SQL to OData HTTP Method OData REST Operation SQL Command POST Create a new entity INSERT GET Retrieve zero or more entities SELECT PUT Update an Entity (replace semantics) UPDATE PATCH Update an Entity (update semantics) UPDATE DELETE Destroy an Entity DELETE GET Invoke a function and get its results CALL / EXEC POST Invoke and action and get its results CALL 35

Self Describing Service Metadata Document Detailed description of the service URL: <service_root>/$metadata Entity Type Complex Type Type Properties Property Attributes Name,Type, MaxLength, Precision, Scale, Nullable, more Navigation Property Key (EntityType) Function Action Parameters Parameter Attributes Name,Type, MaxLength, Precision, Scale, Nullable, more Return Type (Function) Type, Nullable Function Import Action Import Information equivalent to SQL Tables, Columns, Primary Key, Foreign Key, Procedures, ProcedureColumns, Functions, FunctionColumns metadata calls 36

URL Query Conventions https://myodataserver/northwind \ / Service Root https://myodataserver/northwind/customers('alfki')/orders?$expand=orderdetails \ /\ /\ / Service Root Resource Path Query Options 37

ODATA Query Options System Query Option $filter $select Description Restrict the entities returned when querying an entity set to those matching the filter criteria Specify the properties to be included in the returned entities SQL Construct WHERE clause SELECT list $orderby Specify the sort order of the returned entities ORDER BY clause $expand Include related entities and complex types nested in the returned entities INNER JOIN $top and $skip Enable client to page through results TOP/SKIP or LIMIT/OFFSET $count $search $format Include the count of the number of entities returned in the result Restrict the entities returned when querying an entity set to those matching the search expression Specify the desired data format for the response COUNT(*) Full Text Search N/A 38

Batch Insert and Transactions URL: <service_root>/$batch Execute multiple operations in a single OData request. Operations in a Change Set are executed atomically Batch Request GET Customers Change Set POST Orders POST OrderItems POST OrderItems POST OrderItems 39

Getting Started with OData 40

OData Libraries - http://www.odata.org/libraries/.net Java JavaScript Other RESTier Apache Olingo Node-odata ODataCpp (C++) ODataLib SDL OData Frameworks DevExtreme Pyslet Python Package Edmlib Odata4j o.js ODataStore for CoreData (ios) ASP.NET Web API OData Jello Framework OpenUI5 OData4ObjC (ios) AdaptiveLINQ ODataJClient JayData OData Client Library for Tcl/Tk Microsoft.Spatial Breeze.js 41

Or use Hybrid Data Pipeline to create OData REST API from your enterprise databases Why Hybrid Data Pipeline? OData from any data source No Coding No version control needed Patented on-premises gateway technology 42

Demo 43

Resources Understanding OData in 6 steps: http://www.odata.org/getting-started/understandodata-in-6-steps/ Getting Started Tutorial on OData.org: http://www.odata.org/getting-started/basictutorial/ Getting Started Tutorial with OData for your enterprise databases: https://www.progress.com/tutorials/odata/rest-api-for-sql-server-oracle-or-postgres-viaodata REST API Debate across OData, GraphQL, ORDS: https://dzone.com/articles/rest-apiindustry-debate-odata-vs-graphql-vs-ords FAQs we hear on OData: https://www.progress.com/blogs/odata-faqs-why-should-restapi-developers-use-odata [Webinar] OData external data strategies for SaaS vendors with guests from Microsft and Oracle: http://forms.progress.com/wbr-odata-integration-for-saas OData examples across marketing APIs: https://www.progress.com/blogs/gettingstarted-with-rest-apis-across-marketo-eloqua-and-odata Hybrid Data Pipeline Product Page: https://www.progress.com/cloud-and-hybrid-dataintegration 44

Appendix 46

Query Examples Service Root: http://myodataserver/northwind Resource Customers $select=x,y $filter $orderby $expand $top and $skip $count http://myodataserver/northwind/customers http://myodataserver/northwind/customers?$select=companyname,customerid,country http://myodataserver/northwind/customers?$filter=country eq 'Germany' http://myodataserver/northwind/customers?$orderby=country,city desc http://myodataserver/northwind/customers?$expand=orders http://myodataserver/northwind/customers?$orderby=country,city desc&$top=5&$skip=5 http://myodataserver/northwind/customers?$count=true 47

Putting it altogether http:// myodataserver/northwind /Customers? $expand=orders($select=orderid,employeeid,orderdate;$filter=employeeid eq 4) &$filter=country eq 'Germany' and (City eq 'Berlin' or contains(city,'frankfurt )) &$select=customerid,companyname,contactname,city,country,phone &$orderby=companyname desc &$count=true 48