reaching 1 million apis and what to do when we get there
DESCRIPTION
Gluecon 2012 Talk on API growth and how to automate API creation as well as how to handle a world with millions of APIs.TRANSCRIPT
Reaching 1 Million APIs and what to do when we get there
Steven Willmott
http://www.3scale.net
6000 APIs on Programmable Web Today
1million APIs by 2017?
Probably 4-5x that number out there100% Annual Growth
Topics
• Getting to 1 Million APIs• The “Millionth” API• Things we’ll need when we get there
Preliminaries
Took 6 years to go from 1 Web Site to 1 Million
~ approx May 1997
Big Step Changes in Web Growth
Text >> CGI >> PHP >> Geocities & Co…
Today’s API World is “Artisan”
Craft rather than a science
(sidenote : check out the excellent api-craft mailing list / managed by Apigee)
Artisan is Good but…
• Expensive • Doesn’t scale • Fragile• Every API is Different and works in
unexpected / suprising ways
To Grow, the Web Automated
APIs are starting to do
the same?
API “Mass Production”
How to reach 1 Million APIs
Two Key Trends in API Automation
1. Code Frameworks
2. Hosted Platform Environments
1: Code Frameworks
• APIs for Free• Or by Default • Much easier to write
APIs • APIs are much more
standard
• Big Adoption Driver
JAX-RS
2: Platforms
• The Web is build on platforms:
• API Platforms are emerging– Mobile backends– Infochimps– Factual– 3scale, Apigee, Mashery– …
• And web platforms are going API
Impact of Mass Production
No doubt we have the capacity to create as many APIs are Web sites…
Commercial pull is almost unbounded – B2B, Mobile, HTML5
are all major drivers
The Millionth API
Micro View
What was Millionth Web Site?
(Donald Rumsfeld might call it a known unkown)
Launched in May 1997
• Belvidere, NJ• Barnes and Noble• Thousands More..
"I'm very excited for it," Mayor Linda Stettler said. "Belvidere is moving in the right direction."
http://www.belvidere-nj.us/
The Millionth API?
Don’t know much about it yet but…
But we can guess some things
• Niche• Probably in the United States• Probably in the “non-tech” economy • Probably powered by a platform• Probably launched by a small company or
individual
Few Technical Changes are really needed…
We’re way ahead of where the Web was
API Anatomy
IAAS: Cloud Deployed
PAAS: Cloud Managed
App Framework: e.g. Drupal
Code: e.g. PHP
API Pattern: e.g. REST (++)
Identity & Auth: e.g. oAuth
Data Models: Standardized
Code Libraries: Auto Generated
Meta Data: Publically Listed
But most technical change will driven by dealing with the sheer number of APIs
Dealing with Millions
Macro View
Topics
1. Discovery2. Selection3. Reuse4. Engagement5. Monitoring
#1: Discovery
• Q: Where are all the service descriptions?
• A: Not quite there yet…
Discovery
API
Google Discovery
Format
(Also see SWAGGER, WADL)
Discovery
API
Who Provides ItFunctionality Offered
Data Models UsedPerformance Parameters
SLAs and Guarantees
Cost and Terms…
Description must be locatable
Discovery
API
• New Formats needed• But also adoption and
linking/indexing
#2: Selection
• Amongst million APIs - how do you know which ones to trust?
• On the Web:– Domains– SSL– Brand Visuals– Google/Alex Rankings
API
API
API
API
API
Selection
• In an API World many of these don’t work (e.g. no browser SSL root certs)
• Need: – 3rd party monitoring & ranking– Transparency by providers– “Web of Trust” for APIs
• Identity of providers just as much an issue as that of users
API
API
API
API
API
#3: Reuse
?
• Today: – Semantics are HTTP, REST
Principles, MIME Data Types, Developer Intuition
– Operational Semantics baked into client code
• This is like writing a new browser for every website
(we’re getting pretty good at writing them – but hey, it’s still dumb!)
Huge Barrier to Re-usability
Reuse – Two Big Trends
? 1. Better Specifications
2. Convergence
Reuse - Specifications
?
• More Rigid Semantics• Data Ontologies • Interlinking Ontologies• HATEOS Principles for
explorationSpec
Principle: use derivation from primitives to write / generate code
Reuse - Convergence
?
• Similar Interfaces and Logical Choices
• Conventions• Already Happening• Platforms will be a huge driver• How to Foster Good
Conventions?
Principle: stick to conventions to help people use your stuff
Y
X
But… – what happens if you can copyright interfaces?
Need: interface commons
#4: Engagement
API
• Today: – http://developer.xyz.com/– Agree Terms– Get Credentials– Write App– Get Stuff Done
• Frankly…
This is Nuts!
(at scale)
#4: Engagement
API
• Need to be able to: – Be able to discover the software
you need automatically– identify yourself and the provider– engage a service contract– generate credentials – begin using the service
• All without human intervention of any sort
#4: Engagement
All Contain elements Mostly Focus on Coordination
ebXML
Design By Contract
OWL-S
WSMO
BPML
Contract First
Open Grid Forum
Need a Focus on Simplified Contract Establishment
• Identity is Critical• Standard Terms are
Critical• APIs for Contracting• How to setup up API
usage with code rather than web interactions
#5: Monitoring
• Quality of Service Will be Key
• Using any API introduces an outside dependency
• More complex than Web Monitoring
• Like Distributed Integration Testing
API
API
API
API
APIX
X
Summary: Macro Issues
Discovery
Selection
Reuse
Engagement
Monitoring
Description FormatsDescription UsageDescription Referencing
Indicators of TrustIndicators of QualityIdentity
SpecificationsConvergence
IdentityCommon TermsSimple Protocols
TransparencyShared InfrastructureIntegration Like Testing
Closing Thoughts
Todays' APIs are very special – need unique, care and attention
But to get further we need to Automate – and deal with scale
Conclusions
• Platforms will begin to drive massive API growth
• Much of the challenge is in meta-data, discovery and engagement
• API Consumer will need just as much help as the API provider
• Need a new discipline – “Machine Interface Design”
Final Thought
• Today: we focus on making it easier for developers to use our APIs
• Tomorrow: we’ll need to make it easier for machines to use our APIs
Credits
• Cover Image: appelogen.be / flickr of AI WeiWei’s sunflower exhibit at the Tate Modern, License CC.
• Anatomical Heart: wikimedia / wikipedia• API-CRAFT Mailing list:
https://groups.google.com/group/api-craft
Licenses
• Original Content:
• Included Images:
– Licensed terms determined by originator
Creative Commons Attribution-ShareAlike 3.0