SlideShare uma empresa Scribd logo
1 de 22
Kaminda Dimunge | SENIOR STAFF ENGINEER
ZEBRA TECHNOLOGIES LANKA (PVT) LTD
API Design Concepts for
Device Programming
Agenda
• Overview
• API Types
• Qualities of API
• Configuration Models
• Architecture
• Design Considerations
2
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
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
Device Types
6
Mobile Devices
Control Systems
Home Appliances
Public Safety
Healthcare Devices
Wearable Devices
Automotive Computers
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
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
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
Internet of Things (IOT)
Qualities of API
• Learnability-Easy to learn, self descriptive, help, developer
guide, wizards, IDE support, add-ons, plug-ins, intellisense,
samples
• Usability-Key classes, patterns
• Robustness-Boundary checks, Type verification
• Performance-Actions within duration, memory, processor
• …
• Eventually DX, UX
11
Design Patterns
-Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra
12
Configuration Models
Applications
Device
Device
Applications
Host
Connectivity
13
Standards
• Unified POS-OLE POS, Java POS, POS for .NET
• Web Services POS-WS-POS
• MagStripe Track Decoding-Master Card, Amex,
Loyalty Card
• Barcode Label Types-Dutch Postal, PDF 417, UPC
• NFC, SmartCard, Payment etc.-NFC Type1, NFC
Type 2, Memory Cards, CMU/MPU Cards
14
API Architecture
Connectivity
API Layer
Application
Device
Architecture 1
Service Layer
API Layer
Application
Device
Architecture 2
Application
Host
API Layer
Device
Architecture 1
15
Tunnelling, Active and Passive
Application 1
Application 3
Application 2 Host
Scanner 1
Scanner 2
Scanner 3
16
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
Concurrency
18
Synchronous vs. Asynchronous
• Limitations on synchronization
• Avoid misuse
• Mitigate delay and block
19
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
Compatibility
21
Thank You

Mais conteúdo relacionado

Mais procurados

Black diamond software apps it lcp
Black diamond software apps it lcpBlack diamond software apps it lcp
Black diamond software apps it lcp
Paul Wheeler
 
Black diamond engineering lcp
Black diamond engineering lcpBlack diamond engineering lcp
Black diamond engineering lcp
Paul Wheeler
 
Ultrabooks presentation
Ultrabooks presentationUltrabooks presentation
Ultrabooks presentation
Chris Harkins
 

Mais procurados (11)

Skilling Entry Level Engineers in IoT - A Practical Approach
Skilling Entry Level Engineers in IoT - A Practical ApproachSkilling Entry Level Engineers in IoT - A Practical Approach
Skilling Entry Level Engineers in IoT - A Practical Approach
 
Black diamond software apps it lcp
Black diamond software apps it lcpBlack diamond software apps it lcp
Black diamond software apps it lcp
 
Black diamond engineering lcp
Black diamond engineering lcpBlack diamond engineering lcp
Black diamond engineering lcp
 
Ultrabooks presentation
Ultrabooks presentationUltrabooks presentation
Ultrabooks presentation
 
Voice Driven User Interface Design
Voice Driven User Interface DesignVoice Driven User Interface Design
Voice Driven User Interface Design
 
CNIT 128 7: Mobile Device Management
CNIT 128 7: Mobile Device ManagementCNIT 128 7: Mobile Device Management
CNIT 128 7: Mobile Device Management
 
Java Card in Banking and NFC
Java Card in Banking and NFCJava Card in Banking and NFC
Java Card in Banking and NFC
 
Java Card, 15 years later
Java Card, 15 years laterJava Card, 15 years later
Java Card, 15 years later
 
Third Place - Closing the Loop
Third Place - Closing the LoopThird Place - Closing the Loop
Third Place - Closing the Loop
 
Outsmarting the Smart City
Outsmarting the Smart CityOutsmarting the Smart City
Outsmarting the Smart City
 
Outsmarting the Smart City: DISCOVERING AND ATTACKING THE TECHNOLOGY THAT RUN...
Outsmarting the Smart City: DISCOVERING AND ATTACKING THE TECHNOLOGY THAT RUN...Outsmarting the Smart City: DISCOVERING AND ATTACKING THE TECHNOLOGY THAT RUN...
Outsmarting the Smart City: DISCOVERING AND ATTACKING THE TECHNOLOGY THAT RUN...
 

Semelhante a API Design Concepts for Device Programming

Reverse Engineering.pptx
Reverse Engineering.pptxReverse Engineering.pptx
Reverse Engineering.pptx
Sameer Sapra
 
Monitoreo y análisis de aplicaciones "Multi-Tier"
Monitoreo y análisis de aplicaciones "Multi-Tier"Monitoreo y análisis de aplicaciones "Multi-Tier"
Monitoreo y análisis de aplicaciones "Multi-Tier"
GeneXus
 
SmartPlay! The place to be!
SmartPlay! The place to be! SmartPlay! The place to be!
SmartPlay! The place to be!
KR_8
 
Altabel Group Presentation (1)
Altabel Group Presentation (1)Altabel Group Presentation (1)
Altabel Group Presentation (1)
Darya Bertosh
 
Android village @nullcon 2012
Android village @nullcon 2012 Android village @nullcon 2012
Android village @nullcon 2012
hakersinfo
 

Semelhante a API Design Concepts for Device Programming (20)

Protecting Embedded software IP
Protecting Embedded software IPProtecting Embedded software IP
Protecting Embedded software IP
 
Device Independent API design
Device Independent API designDevice Independent API design
Device Independent API design
 
Reverse Engineering.pptx
Reverse Engineering.pptxReverse Engineering.pptx
Reverse Engineering.pptx
 
Open-RnD Embedded Offer
Open-RnD Embedded OfferOpen-RnD Embedded Offer
Open-RnD Embedded Offer
 
Monitoreo y análisis de aplicaciones "Multi-Tier"
Monitoreo y análisis de aplicaciones "Multi-Tier"Monitoreo y análisis de aplicaciones "Multi-Tier"
Monitoreo y análisis de aplicaciones "Multi-Tier"
 
Code or No Code
Code or No CodeCode or No Code
Code or No Code
 
iEmbed product_service_portfolio_2016
iEmbed product_service_portfolio_2016iEmbed product_service_portfolio_2016
iEmbed product_service_portfolio_2016
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network Automation
 
"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel
 
Digital Security by Design: Imperas’ Interests - Simon Davidmann, Imperas Sof...
Digital Security by Design: Imperas’ Interests - Simon Davidmann, Imperas Sof...Digital Security by Design: Imperas’ Interests - Simon Davidmann, Imperas Sof...
Digital Security by Design: Imperas’ Interests - Simon Davidmann, Imperas Sof...
 
SmartPlay! The place to be!
SmartPlay! The place to be! SmartPlay! The place to be!
SmartPlay! The place to be!
 
Soc analyst course content v3
Soc analyst course content v3Soc analyst course content v3
Soc analyst course content v3
 
Soc analyst course content
Soc analyst course contentSoc analyst course content
Soc analyst course content
 
Altabel Group Presentation (1)
Altabel Group Presentation (1)Altabel Group Presentation (1)
Altabel Group Presentation (1)
 
Successful Industrial IoT patterns
Successful Industrial IoT patterns Successful Industrial IoT patterns
Successful Industrial IoT patterns
 
5 steps to Automated Network Operations (NetOps)
5 steps to Automated Network Operations (NetOps)5 steps to Automated Network Operations (NetOps)
5 steps to Automated Network Operations (NetOps)
 
Edje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesEdje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT Devices
 
Career Domain 2022-23.pptx
Career Domain 2022-23.pptxCareer Domain 2022-23.pptx
Career Domain 2022-23.pptx
 
Android village @nullcon 2012
Android village @nullcon 2012 Android village @nullcon 2012
Android village @nullcon 2012
 
Centerix Iris-Presentation
Centerix Iris-PresentationCenterix Iris-Presentation
Centerix Iris-Presentation
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

API Design Concepts for Device Programming

  • 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
  • 6. Device Types 6 Mobile Devices Control Systems Home Appliances Public Safety Healthcare Devices Wearable Devices Automotive Computers
  • 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
  • 11. Qualities of API • Learnability-Easy to learn, self descriptive, help, developer guide, wizards, IDE support, add-ons, plug-ins, intellisense, samples • Usability-Key classes, patterns • Robustness-Boundary checks, Type verification • Performance-Actions within duration, memory, processor • … • Eventually DX, UX 11
  • 12. Design Patterns -Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra 12
  • 14. Standards • Unified POS-OLE POS, Java POS, POS for .NET • Web Services POS-WS-POS • MagStripe Track Decoding-Master Card, Amex, Loyalty Card • Barcode Label Types-Dutch Postal, PDF 417, UPC • NFC, SmartCard, Payment etc.-NFC Type1, NFC Type 2, Memory Cards, CMU/MPU Cards 14
  • 15. API Architecture Connectivity API Layer Application Device Architecture 1 Service Layer API Layer Application Device Architecture 2 Application Host API Layer Device Architecture 1 15
  • 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
  • 19. Synchronous vs. Asynchronous • Limitations on synchronization • Avoid misuse • Mitigate delay and block 19
  • 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