Devices play a major role today and demand of device APIs is compelling. Many aspects such as standards, functional, non-functional, presentation, performance need to be considered when designing APIs for devices and this session will try to address them.
1. Kaminda Dimunge | SENIOR STAFF ENGINEER
ZEBRA TECHNOLOGIES LANKA (PVT) LTD
API Design Concepts for
Device Programming
2. Agenda
• Overview
• API Types
• Qualities of API
• Configuration Models
• Architecture
• Design Considerations
2
3.
4. Analogy of API design
Every car has a steering wheel, brake
pedals, and an accelerator. You might
find that hazard lights, the trunk release,
or radio are slightly different, but it’s rare
that an experienced driver can’t figure
out how to drive a rental car.
-The authors of APIs: A Strategy Guide (Daniel Jacobson, Greg
Brail, Dan Woods)
4
5. What is an API?
In computer programming, an
application programming interface
(API) is a set of routines, protocols,
and tools for building software
applications. …
-Wikipedia
5
7. Consider…
• Contains a display or not
• Limited memory and processing power
• Input output
• Stand-alone or connected
• Communication secured or not
• Security, safety compliances required
• …
7
8. What can API do with devices?
• Get something done – Read a barcode
• Listen or monitor – Oil temperature of engine
• Watch – Is my dog eating the couch?
• Configure – Room temperature
• …
8
9. API Types
• Classic API – Common local APIs
• Design Time Controls – Like Button control
• Web APIs – Browser plug-ins etc.
• Provisioning and Staging APIs – for mass
deployment, device profiling, licensing
• Software Wedge – Zero programming
• …
9
16. Tunnelling, Active and Passive
Application 1
Application 3
Application 2 Host
Scanner 1
Scanner 2
Scanner 3
16
17. API Security
• Does your API only do what is intended?
• Is it accepting only the data as designed?
• Do you have any hidden APIs for internal
with root access?
• Encryption and authentication adequate?
• …
17
20. API Compatibility
• Application development contracted to
outside companies
• Changes are costly
– Positive test, Negative test, Stress test, Etc.
– Deploy into thousands of devices in many
geographically different locations
– User training
• Backward compatibility and forward
compatibility
20