Ole Lensmar CTO SmartBear Software PAST, PRESENT AND FUTURE OF APIS FOR MOBILE AND WEB APPS



Similar documents
REST web services. Representational State Transfer Author: Nemanja Kojic

Service Oriented Architecture

Introduction into Web Services (WS)

Building HTML5 and hybrid mobile apps using cloud services. Andrei Glazunov

ITP 140 Mobile Technologies. Mobile Topics

Enabling REST Services with SAP PI. Michael Le Peter Ha

tibbr Now, the Information Finds You.

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

REST vs. SOAP: Making the Right Architectural Decision

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

HTML5 : carrier grade

WEB SERVICES TEST AUTOMATION

Designing RESTful Web Applications

02267: Software Development of Web Services

Closer Look at Enterprise Service Bus. Deb L. Ayers Sr. Principle Product Manager Oracle Service Bus SOA Fusion Middleware Division

Enhanced Mobile Cloud Computing Platform

a + b =? Open APIs: State of the Market

Introduction to IBM Worklight Mobile Platform

Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati

A Standards-based Mobile Application IdM Architecture

WEB SERVICES FOR MOBILE COMPUTING

BPMN for REST. Cesare Pautasso Faculty of Informatics, USI Lugano, Switzerland

VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE

Service-Oriented Architectures

Solution Showcase Session. Enterprise 2.0 Computing Services

ITP 342 Mobile App Development. APIs

Integrating Mobile apps with your Enterprise

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

SOA and Virtualization Technologies (ENCS 691K Chapter 2)

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Guiding Principles for Modeling and Designing Reusable Services

What is a Web service?

Core Feature Comparison between. XML / SOA Gateways. and. Web Application Firewalls. Jason Macy jmacy@forumsys.com CTO, Forum Systems

Advancing Integration Competency and Excellence with the WSO2 Integration Platform

Web Services in Oracle Fusion Middleware. Raghu Kodali Consulting Product Manager & SOA Evangelist Oracle Fusion Middleware Oracle USA

Web Services Advanced Topics

vs WS-* Comparison Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland

Types of Cloud Computing

WELCOME TO Open Source Enterprise Architecture

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

Integrating CRM On Demand with the E-Business Suite to Supercharge your Sales Team

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Rapid Development of Smart and Self-Adaptive Cloud, Mobile & IoT Applications - Accelerating the Last Mile of Cloud Computing

Web Services and Service Oriented Architectures. Thomas Soddemann, RZG

Classic Grid Architecture

From RPC to Web Apps: Trends in Client-Server Systems

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Building Web-based Infrastructures for Smart Meters

Mobility Information Series

IoT concepts Andrea Acquaviva EDA group Politecnico di Torino, Italy

Service-Oriented Architecture: Analysis, the Keys to Success!

FIVE SIGNS YOU NEED HTML5 WEBSOCKETS

SoapUI NG Pro and Ready! API Platform Two-Day Training Course Syllabus

So You Want an SOA: Best Practices for Migrating to SOA in the Enterprise. Eric Newcomer, CTO

CommonTime Making Business Mobile. Enterprise. CommonTime. Mobile Solutions. mdesign Platform.

Web Services Technologies: State of the Art

Run-time Service Oriented Architecture (SOA) V 0.1

soapui Product Comparison

Research on the Model of Enterprise Application Integration with Web Services

Middleware- Driven Mobile Applications

Web Service Testing. SOAP-based Web Services. Software Quality Assurance Telerik Software Academy

API Management: Powered by SOA Software Dedicated Cloud

Towards a common definition and taxonomy of the Internet of Things. Towards a common definition and taxonomy of the Internet of Things...

Lightweight Data Integration using the WebComposition Data Grid Service

ebay : How is it a hit

MOBILE APPLICATIONS AND CLOUD COMPUTING. Roberto Beraldi

Pervasive Software + NetSuite = Seamless Cloud Business Processes

Performance Analysis and Design of a Mobile Web Services on Cloud Servers

XML Processing and Web Services. Chapter 17

e-gov Architecture Service Interface Guidelines

Lesson 18 Web Services and. Service Oriented Architectures

Service-Oriented Architecture and Software Engineering

Cloud Powered Mobile Apps with Microsoft Azure

Service Computing: Basics Monica Scannapieco

Chapter 1 REST and Web Services: In Theory and In Practice

White Paper: Security and Agility in the API Economy. Optimizing and securing your APIs with ViewDS Identity Solutions and Layer 7

ESB solutions Title. BWUG & GSE Subtitle guy.crets@i8c.be. xx.yy@i8c.be

Resource Oriented Architecture and REST

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Smartphone Enterprise Application Integration

ENABLING MOBILE DEVICES TO HOST CONSUMERS AND PROVIDERS OF RESTFUL WEB SERVICES. A Thesis Submitted to the College of. Graduate Studies and Research

Session 6 Patterns and best practices in SOA/REST

Load Testing RIA using WebLOAD. Amir Shoval, VP Product Management

Cloud Computing: Computing as a Service. Prof. Daivashala Deshmukh Maharashtra Institute of Technology, Aurangabad

Performance Testing for Ajax Applications

How To Build A Web App

Service-oriented architecture in e-commerce applications

Tutto quello che c è da sapere su Azure App Service

Copyright IONA Technologies Web Services. Seán Baker IONA Technologies

Understanding Evolution's Architecture A Technical Overview

Web Technologies for the Internet of Things

This project was supported by Grant No DB-BX-K105 awarded by the Bureau of Justice, Office of Justice Programs in collaboration with the U.S.

Security requirements of IoT-based smart buildings using RESTful Web Services

Integration the Web 2.0 way. Florian Daniel April 28, 2009

Mobile devices as Web service providers

Web Interface using HTML5 for Interaction between Mobile Device & Cloud- Services

A standards-based approach to application integration

Introduction to Service Oriented Architectures (SOA)

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Transcription:

Ole Lensmar CTO SmartBear Software PAST, PRESENT AND FUTURE OF APIS FOR MOBILE AND WEB APPS

Once upon a time

We tried to connect (early 90:ies) Multiple protocols / initiatives DCE/RPC (OSF) CORBA (OMG) COM / DCOM (Microsoft) J2EE / RMI (Sun) They all had their challenges Proprietary, Complex, Limited, etc.

Then - the Internet came along HTTP lightweight universal text-based protocol XML lightweight text markup syntax POX plain old XML HTTP+XML became XML-RPC SOAP (Microsoft) Simple Object Access Protocol XML-based messaging protocol transport independent

REST arrives and SOAP evolves REST was introduced by Roy T. Fielding Architectural Styles and the Design of Network-based Software Architectures (2000) SOAP 1.1 WSDL, XML-Schema W3C recommendation in 2003 WS-I Basic Profile (2004) Guidelines on how to implement SOAP related-standards Doc/Literal replaces RPC Top-down vs Bottom up design

and Web APIs emerge Salesforce launches XML API (2000) Salesforce Automation ebay launches their API (2000) Initially limited to select partners/developers Social Del.icio.us (2003) Flickr (2004) Facebook, Twitter, Google Maps, etc (2006) All APIs were central to the reach and success of their providers

Web Applications evolve Web 2.0 Technology Stack AJAX (Asynchronous JavaScript and XML) HTML5 / CSS JSON Web starts turning into a platform ProgrammableWeb launches 2005 API Management (Mashery) Still mainly XML

At the same time - SOAP gets enterprisy QoS specifications WS-* WS-Addressing WS-Security WS-Reliable Messaging etc SOA Architectures become mainstream Limited use of SOAP for public APIs Difficult to consume from Web 2.0 stack

The client landscape continued to change Mobile takes the lead with native/hybrid/web applications Mostly API-driven Single Page Applications (SPA) HTML5 Dynamic UI that pulls all data from backend via APIs Device proliferation Android, ios, Windows Phone, TVs, Consoles, etc.. APIs enable adoption to new devices

APIs fuel cloud and infrastructure Amazon S3 cloud based storage (2006) EC2 - re-sizable compute capacity (2006) Both REST APIs that lacked web interfaces for several years! Twilio voice and messaging (2007) -> APIs enable a building-block approach to applications and architectures

APIs at the heart of applications Mobile Web / SPA Devices Integrations API Logic Storage API Compute API Messaging API ecommerce API

And APIs just continue to grow SOA architectures are moving to REST from SOAP API Directories programmableweb.com apihub.com publicapis.com apicommons.org Collection of shared API definitions QoS OAuth, OpenID Connect, Tokens, etc.

From an architectural point of view

20 years ago ACME Corp (does monolithics)

10 years ago Web app API RMI ACME Corp (does SOA) SOA P MQ Corp

And now Corp APP API Web app API API ACME Corp (does APIs) API App + API IoT Devi ce Devi ce API IoT Devi ce API Corp Corp Devi ce

API Oriented Architecture Key ingredients in a distributed application architecture can be consumed / provided via APIs Storage Messaging ecommerce Virtualization Compute / Provisioning Etc.. Focus on core business

Let s back up a little

What is REST? REST is an architectural style not a technology! Resources are identified with URIs /users/12343/address /cities/boston/hotels?area=downtown HTTP Verbs are used for actions GET retrieve resource representation(s) POST create resource(s) at URI (not idempotent) PUT replace resources identified by URI (idempotent) DELETE delete specified resource(s) PATCH update specified resource Representations and Content-types control semantics

Hypermedia APIs HATEOAS Hypermedia As The Engine Of Application State Embed links to applicable actions in REST responses clients shouldn t need to know in advance what can be done next Pros Designed for scale Change and Context tolerant Allows discovery of APIs Cons Hypermedia is a human concept - client logic can get complex Requires aggressive caching for performance

REST Maturity Model

Hypermedia Example

Hypermedia Example

Hypermedia API Example

REST API Descriptions API metadata can be used for documentation, validation + testing code-generation Swagger - code oriented (bottom-up) large community + great tools for code generation RAML, API-Blueprint - design-oriented (top-down) great authoring tools WADL - inspired by WSDL never caught on

Swagger Example

Swagger UI

Looking ahead REST faces some challenges

Experience APIs Model APIs after user experience not resources NetFlix 800+ devices / homescreens Each homescreen made multiple REST calls doesn t scale Solution build one API call for each device; /api/homescreen/ps4 Orchestrate / Aggregate needed internal APIs on the server

Binary Protocols Several CORBA-like alternative Thrift (Facebook) Protobuf (Google) Avro (Apache/Hadoop) All have an IDL with language bindings Problems solved: Performance (processing and bandwidth) Type-safety / interop Improved QoS built in the protocol

Async / Real-Time APIs API-driven applications often poll for data updates Imposes bandwidth + performance overhead Insufficient for real real-time needs Real-Time APIs push data to clients when needed WebSockets (W3C) Supported in all major browsers Full-duplex communication over a single TCP connection Webhooks User-defined HTTP callbacks Supports REST concepts

SDKs vs APIs SDKs greatly ease adoption No need to learn / implement underlying protocol Native language bindings natural for developers API provider has flexibility to change SDKs pose great challenges too Dependencies Versioning Support

And of course - the Internet of Things IoT devices have limited power and bandwidth low complexity and footprint for APIs publish/subscribe instead of request/response minimized on-the-wire formats automatic (re)connection management A number of real-time protocols in use MQTT, CoAP, AMQP, STOMP, etc IoT Brokers connect and integrate multiple devices

So if you re building APIs, what should be keeping you up at night?

API Hierarchy of Needs

Who is going to use your API?

User Experience = Developer Experience

Align with your users technology SOAP / REST / Corba / etc XML / JSON / YAML / etc Honor QoS and Security

Help users understand your API vs

Help users consume your API Code samples in common languages Native SDKs Provide sandbox environments

Provide API Metadata Validation Code Generation Coverage Understanding Simulation wsdl, swagger, wadl, hal, json schema, apiary.io, xml schema, ws-*, apiary, api-docs, raml, iodocs, etc

Align with your users domain Process / Workflow Nomenclature Related APIs

A 3:30:3 Litmus test for APIs 3 Minutes to understand what an API does 30 seconds to sign up 3 minutes to the first request (Ori Pekelman)

Recommendations

API First APIs are at the heart of Mobile Strategies Web Strategies Partner / Integration Strategies Developer / Community Strategies Cloud / Infrastructure Strategies APIs should be treated as a first-level citizen - not as an after sight

Technology & Implementation Avoid (REST) religion Choose what s best for you and your users Understand the importance of DX both internally and externally Use your public APIs internally!

And please Love your APIs and they ll love you back!

Thanks! @olensmar ole.lensmar@smartbear.com