SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Push vs Pull A look at how mobile apps get data from the Internet Dale Lane dalelane.co.uk/blog
 
http://www.flickr.com/photos/hugosimmelink/2252095723/
http://www.flickr.com/photos/amagill/3366720659/
http://www.flickr.com/photos/johnseb/2457508491/
 
 
 
http://www.flickr.com/photos/elithebearded/2693546916/
 
http://www.flickr.com/photos/dushaun/3112631370/
http://www.flickr.com/photos/epitti/2565572445/
 
 
http://www.flickr.com/photos/hippie/2475795533/
http://library-online.org.uk/
 
http://www.flickr.com/photos/magda_stremeski/3823218572/
CONNECT
SUBSCRIBE
 
 
POLLING
POLLING PUSH
http://www.flickr.com/photos/oskay/472097903/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
C Java Delphi Arduino Perl Python .NET Ruby PHP J2SE & J2ME
 
 
 
http://www.flickr.com/photos/minxlabs/2297989507/
 
http://www.flickr.com/photos/minxlabs/2297989507/
http://www.flickr.com/photos/minxlabs/2297989507/
http://www.flickr.com/photos/minxlabs/2297989507/
http://realestatedementia.com/aint-no-silver-bullet/
 
 
http://christthetruth.files.wordpress.com/2009/09/strategy.jpg
“ Really Small Message Broker” “ Micro Broker” “ WebSphere Message Broker”
“ Micro Broker” Time of day Calendar based Message based Watermark Low watermark Number of messages Message priority Tariff based High watermark Low watermark High watermark Always connected Manual correction Connection Frequency Duration
[object Object],[object Object],[object Object],[object Object],http://www.flickr.com/photos/missmoon/79197839/
 

Weitere ähnliche Inhalte

Was ist angesagt?

Re:build 2011: Passion -> Startup
Re:build 2011: Passion -> StartupRe:build 2011: Passion -> Startup
Re:build 2011: Passion -> Startupleahculver
 
Anderson_Jamar_IgniteSlideShare
Anderson_Jamar_IgniteSlideShareAnderson_Jamar_IgniteSlideShare
Anderson_Jamar_IgniteSlideSharejdanderson
 
Beyond Google
Beyond GoogleBeyond Google
Beyond GoogleAnne Welsh
 
Nix jennifer visual resume storyboard
Nix jennifer visual resume storyboardNix jennifer visual resume storyboard
Nix jennifer visual resume storyboardjenix002000
 
Searching & Reference 2.0
Searching & Reference 2.0Searching & Reference 2.0
Searching & Reference 2.0Michael Sauers
 
Let's Get Social!
Let's Get Social!Let's Get Social!
Let's Get Social!Michael Sauers
 
Reference 2008: It's Not Just About Having a Big Dictionary Any More
Reference 2008: It's Not Just About Having a Big Dictionary Any MoreReference 2008: It's Not Just About Having a Big Dictionary Any More
Reference 2008: It's Not Just About Having a Big Dictionary Any MoreMichael Sauers
 
Connected Learning Community Orientation
Connected Learning Community OrientationConnected Learning Community Orientation
Connected Learning Community OrientationKim Cofino
 
Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...
Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...
Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...Bobbi Newman
 
Rice University Advertising Spring 2010
Rice University Advertising Spring 2010Rice University Advertising Spring 2010
Rice University Advertising Spring 2010Ed Schipul
 
Ilt in teaching and learning
Ilt in teaching and learningIlt in teaching and learning
Ilt in teaching and learningJames West
 
Edu Blogs
Edu BlogsEdu Blogs
Edu Blogsfritzk09
 
Libraries and Transliteracy KLA
Libraries and Transliteracy KLALibraries and Transliteracy KLA
Libraries and Transliteracy KLABobbi Newman
 
BrazTESOL Brasilia - Share, Connect, Learn
BrazTESOL Brasilia - Share, Connect, LearnBrazTESOL Brasilia - Share, Connect, Learn
BrazTESOL Brasilia - Share, Connect, LearnCarla Arena
 
Introduction to Transliteracy for Libraries
Introduction to Transliteracy for LibrariesIntroduction to Transliteracy for Libraries
Introduction to Transliteracy for LibrariesBobbi Newman
 

Was ist angesagt? (19)

Re:build 2011: Passion -> Startup
Re:build 2011: Passion -> StartupRe:build 2011: Passion -> Startup
Re:build 2011: Passion -> Startup
 
Top 20 Prep For Event
Top 20 Prep For EventTop 20 Prep For Event
Top 20 Prep For Event
 
Anderson_Jamar_IgniteSlideShare
Anderson_Jamar_IgniteSlideShareAnderson_Jamar_IgniteSlideShare
Anderson_Jamar_IgniteSlideShare
 
Beyond Google
Beyond GoogleBeyond Google
Beyond Google
 
Library 2.0 Creating A Borderless Library
Library 2.0   Creating A Borderless LibraryLibrary 2.0   Creating A Borderless Library
Library 2.0 Creating A Borderless Library
 
Nix jennifer visual resume storyboard
Nix jennifer visual resume storyboardNix jennifer visual resume storyboard
Nix jennifer visual resume storyboard
 
Intro to CC
Intro to CCIntro to CC
Intro to CC
 
Searching & Reference 2.0
Searching & Reference 2.0Searching & Reference 2.0
Searching & Reference 2.0
 
Let's Get Social!
Let's Get Social!Let's Get Social!
Let's Get Social!
 
Reference 2008: It's Not Just About Having a Big Dictionary Any More
Reference 2008: It's Not Just About Having a Big Dictionary Any MoreReference 2008: It's Not Just About Having a Big Dictionary Any More
Reference 2008: It's Not Just About Having a Big Dictionary Any More
 
Connected Learning Community Orientation
Connected Learning Community OrientationConnected Learning Community Orientation
Connected Learning Community Orientation
 
Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...
Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...
Bring on the Rain Putting the Cloud to Work for You: an introduction to cloud...
 
Rice University Advertising Spring 2010
Rice University Advertising Spring 2010Rice University Advertising Spring 2010
Rice University Advertising Spring 2010
 
Ilt in teaching and learning
Ilt in teaching and learningIlt in teaching and learning
Ilt in teaching and learning
 
Edu Blogs
Edu BlogsEdu Blogs
Edu Blogs
 
Libraries and Transliteracy KLA
Libraries and Transliteracy KLALibraries and Transliteracy KLA
Libraries and Transliteracy KLA
 
Searching 2.0
Searching 2.0Searching 2.0
Searching 2.0
 
BrazTESOL Brasilia - Share, Connect, Learn
BrazTESOL Brasilia - Share, Connect, LearnBrazTESOL Brasilia - Share, Connect, Learn
BrazTESOL Brasilia - Share, Connect, Learn
 
Introduction to Transliteracy for Libraries
Introduction to Transliteracy for LibrariesIntroduction to Transliteracy for Libraries
Introduction to Transliteracy for Libraries
 

Andere mochten auch

Conversational Internet - Creating a natural language interface for web pages
Conversational Internet - Creating a natural language interface for web pagesConversational Internet - Creating a natural language interface for web pages
Conversational Internet - Creating a natural language interface for web pagesDale Lane
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Brendan Gregg
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and moreBrendan Gregg
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf toolsBrendan Gregg
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
 

Andere mochten auch (7)

Conversational Internet - Creating a natural language interface for web pages
Conversational Internet - Creating a natural language interface for web pagesConversational Internet - Creating a natural language interface for web pages
Conversational Internet - Creating a natural language interface for web pages
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 

Ă„hnlich wie Pushing, pulling or leaving the door open

A College Transcript in High School
A College Transcript in High SchoolA College Transcript in High School
A College Transcript in High SchoolJeremy Zweiacker
 
Beginning Workshop 2008
Beginning Workshop 2008Beginning Workshop 2008
Beginning Workshop 2008Anne Heidemann
 
Soft Skills Hard Data
Soft Skills Hard DataSoft Skills Hard Data
Soft Skills Hard DataDaniel Judge
 
RDA and the future cataloguing community
RDA and the future cataloguing communityRDA and the future cataloguing community
RDA and the future cataloguing communityAnne Welsh
 
College Credit Now...Degree Tomorrow
College Credit Now...Degree TomorrowCollege Credit Now...Degree Tomorrow
College Credit Now...Degree TomorrowJeremy Zweiacker
 
Ebooks: Landscape & Impl
Ebooks: Landscape & ImplEbooks: Landscape & Impl
Ebooks: Landscape & ImplBrian Hulsey
 
Living with Smartphones
Living with SmartphonesLiving with Smartphones
Living with SmartphonesCarol Liu
 
Transliteracy is 3D
Transliteracy is 3D Transliteracy is 3D
Transliteracy is 3D Bobbi Newman
 
Scrum of scrums is a bluff! How to scale scrum and survive.
Scrum of scrums is a bluff! How to scale scrum and survive. Scrum of scrums is a bluff! How to scale scrum and survive.
Scrum of scrums is a bluff! How to scale scrum and survive. AgileSparks
 
Desert Animals 15
Desert Animals 15Desert Animals 15
Desert Animals 15SkyblueRm31
 
Sinkholes pics
Sinkholes picsSinkholes pics
Sinkholes pics31sk9
 
The 3 Little Pigs Presintaion #11
The 3 Little Pigs Presintaion #11The 3 Little Pigs Presintaion #11
The 3 Little Pigs Presintaion #11SkyblueRm31
 
Elementary Web 2.0
Elementary Web 2.0Elementary Web 2.0
Elementary Web 2.0Kathy Cassidy
 
Of Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo MalaisesOf Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo MalaisesGary Gale
 
Searching 2.0 (EI & PEN)
Searching 2.0 (EI & PEN)Searching 2.0 (EI & PEN)
Searching 2.0 (EI & PEN)Michael Sauers
 
Open Data Mandate for DSOD
Open Data Mandate for DSODOpen Data Mandate for DSOD
Open Data Mandate for DSODRadu Puchiu
 
Open data what could possibly go wrong?
Open data   what could possibly go wrong?Open data   what could possibly go wrong?
Open data what could possibly go wrong?Steven Feldman
 
Emerging Technology Trends for 2015
Emerging Technology Trends for 2015Emerging Technology Trends for 2015
Emerging Technology Trends for 2015David King
 
Cil09PowerPointVersion
Cil09PowerPointVersionCil09PowerPointVersion
Cil09PowerPointVersionBeth Tribe
 

Ă„hnlich wie Pushing, pulling or leaving the door open (20)

A College Transcript in High School
A College Transcript in High SchoolA College Transcript in High School
A College Transcript in High School
 
Beginning Workshop 2008
Beginning Workshop 2008Beginning Workshop 2008
Beginning Workshop 2008
 
Soft Skills Hard Data
Soft Skills Hard DataSoft Skills Hard Data
Soft Skills Hard Data
 
RDA and the future cataloguing community
RDA and the future cataloguing communityRDA and the future cataloguing community
RDA and the future cataloguing community
 
College Credit Now...Degree Tomorrow
College Credit Now...Degree TomorrowCollege Credit Now...Degree Tomorrow
College Credit Now...Degree Tomorrow
 
Ebooks: Landscape & Impl
Ebooks: Landscape & ImplEbooks: Landscape & Impl
Ebooks: Landscape & Impl
 
Living with Smartphones
Living with SmartphonesLiving with Smartphones
Living with Smartphones
 
Transliteracy is 3D
Transliteracy is 3D Transliteracy is 3D
Transliteracy is 3D
 
Scrum of scrums is a bluff! How to scale scrum and survive.
Scrum of scrums is a bluff! How to scale scrum and survive. Scrum of scrums is a bluff! How to scale scrum and survive.
Scrum of scrums is a bluff! How to scale scrum and survive.
 
Desert Animals 15
Desert Animals 15Desert Animals 15
Desert Animals 15
 
Sinkholes pics
Sinkholes picsSinkholes pics
Sinkholes pics
 
The 3 Little Pigs Presintaion #11
The 3 Little Pigs Presintaion #11The 3 Little Pigs Presintaion #11
The 3 Little Pigs Presintaion #11
 
Elementary Web 2.0
Elementary Web 2.0Elementary Web 2.0
Elementary Web 2.0
 
Of Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo MalaisesOf Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo Malaises
 
Searching 2.0 (EI & PEN)
Searching 2.0 (EI & PEN)Searching 2.0 (EI & PEN)
Searching 2.0 (EI & PEN)
 
Open Data Mandate for DSOD
Open Data Mandate for DSODOpen Data Mandate for DSOD
Open Data Mandate for DSOD
 
Open data what could possibly go wrong?
Open data   what could possibly go wrong?Open data   what could possibly go wrong?
Open data what could possibly go wrong?
 
Emerging Technology Trends for 2015
Emerging Technology Trends for 2015Emerging Technology Trends for 2015
Emerging Technology Trends for 2015
 
Cil09
Cil09Cil09
Cil09
 
Cil09PowerPointVersion
Cil09PowerPointVersionCil09PowerPointVersion
Cil09PowerPointVersion
 

Mehr von Dale Lane

Describing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPIDescribing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPIDale Lane
 
Our NASA Space Apps Challenge 2019 entry
Our NASA Space Apps Challenge 2019 entryOur NASA Space Apps Challenge 2019 entry
Our NASA Space Apps Challenge 2019 entryDale Lane
 
Useful Kafka tools
Useful Kafka toolsUseful Kafka tools
Useful Kafka toolsDale Lane
 
An intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersAn intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersDale Lane
 
How to increase the social impact you make
How to increase the social impact you makeHow to increase the social impact you make
How to increase the social impact you makeDale Lane
 
Introducing Machine Learning to Kids
Introducing Machine Learning to KidsIntroducing Machine Learning to Kids
Introducing Machine Learning to KidsDale Lane
 
Introducing machine learning to kids
Introducing machine learning to kidsIntroducing machine learning to kids
Introducing machine learning to kidsDale Lane
 
Small Spaces, Big Ideas - our Space Apps Challenge
Small Spaces, Big Ideas - our Space Apps ChallengeSmall Spaces, Big Ideas - our Space Apps Challenge
Small Spaces, Big Ideas - our Space Apps ChallengeDale Lane
 
The skills implications of Cognitive Computing
The skills implications of Cognitive ComputingThe skills implications of Cognitive Computing
The skills implications of Cognitive ComputingDale Lane
 
Debugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile DevicesDebugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile DevicesDale Lane
 
GaianDB
GaianDBGaianDB
GaianDBDale Lane
 
Push notifications
Push notificationsPush notifications
Push notificationsDale Lane
 
Fire Eagle Guest Pass
Fire Eagle Guest PassFire Eagle Guest Pass
Fire Eagle Guest PassDale Lane
 
Monitoring your electricity usage
Monitoring your electricity usageMonitoring your electricity usage
Monitoring your electricity usageDale Lane
 
CurrentCost
CurrentCostCurrentCost
CurrentCostDale Lane
 
An introduction to Windows Mobile development
An introduction to Windows Mobile developmentAn introduction to Windows Mobile development
An introduction to Windows Mobile developmentDale Lane
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShellDale Lane
 
Mowing the lawn
Mowing the lawnMowing the lawn
Mowing the lawnDale Lane
 

Mehr von Dale Lane (19)

Describing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPIDescribing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPI
 
Our NASA Space Apps Challenge 2019 entry
Our NASA Space Apps Challenge 2019 entryOur NASA Space Apps Challenge 2019 entry
Our NASA Space Apps Challenge 2019 entry
 
Useful Kafka tools
Useful Kafka toolsUseful Kafka tools
Useful Kafka tools
 
An intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersAn intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka users
 
How to increase the social impact you make
How to increase the social impact you makeHow to increase the social impact you make
How to increase the social impact you make
 
Introducing Machine Learning to Kids
Introducing Machine Learning to KidsIntroducing Machine Learning to Kids
Introducing Machine Learning to Kids
 
Introducing machine learning to kids
Introducing machine learning to kidsIntroducing machine learning to kids
Introducing machine learning to kids
 
Small Spaces, Big Ideas - our Space Apps Challenge
Small Spaces, Big Ideas - our Space Apps ChallengeSmall Spaces, Big Ideas - our Space Apps Challenge
Small Spaces, Big Ideas - our Space Apps Challenge
 
Owls
OwlsOwls
Owls
 
The skills implications of Cognitive Computing
The skills implications of Cognitive ComputingThe skills implications of Cognitive Computing
The skills implications of Cognitive Computing
 
Debugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile DevicesDebugging Web Apps on Real Mobile Devices
Debugging Web Apps on Real Mobile Devices
 
GaianDB
GaianDBGaianDB
GaianDB
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Fire Eagle Guest Pass
Fire Eagle Guest PassFire Eagle Guest Pass
Fire Eagle Guest Pass
 
Monitoring your electricity usage
Monitoring your electricity usageMonitoring your electricity usage
Monitoring your electricity usage
 
CurrentCost
CurrentCostCurrentCost
CurrentCost
 
An introduction to Windows Mobile development
An introduction to Windows Mobile developmentAn introduction to Windows Mobile development
An introduction to Windows Mobile development
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShell
 
Mowing the lawn
Mowing the lawnMowing the lawn
Mowing the lawn
 

KĂĽrzlich hochgeladen

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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 WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

KĂĽrzlich hochgeladen (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 âś“Call Girls In Kalyan ( Mumbai ) secure service
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Pushing, pulling or leaving the door open

Hinweis der Redaktion

  1. Welcome In this session, I want to talk about mobile apps that rely on data from the Internet, and some of the decisions and choices facing mobile app developers in writing them
  2. Who am I? Hobbyist mobile developer for ages As a day-job, I worked as a networking and messaging developer for many years, originally for Motorola in GSM networks then for IBM in enterprise messaging systems More recently, I joined IBM’s Emerging Technology team so I get to do some mobile stuff as my day-job which is great
  3. Warning disclaimer bit As mentioned, I work for IBM I do plan to talk for a bit about an IBM technology – to illustrate a point I want to make about mobile apps
  4. This is not a sales pitch I'm not on commission. I'm not trying to sell you anything. I want to talk about an area of technology and a challenge as a developer that I find interesting. That said, if you’re not comfortable with the idea of an IBM employee talking to you about an IBM technology at a barcamp at an IBM location, then fair enough – I entirely understand, and wont be offended if you want to leave now and catch one of the other talks.
  5. Mobile apps are changing Cheaper data plans mean mobile developers are writing more apps that make more use of the Internet and web services The more we do this, the more we hammer our user's batteries
  6. Poor battery life is one of the biggest pain points for smartphone users A challenge for mobile app developers is how to help. Or at least, how not to make things too much worse!
  7. An example of the problem How many of you have a twitter client on your phone? It probably relies upon (or at least offers) polling. You probably have a setting where you specify how often the app should check twitter.com for new replies or DMs This can rinse your battery
  8. This is massively inefficient A polling app is like a kid saying “Are we there yet?” “Is there any new data yet?” No. “ Is there any new data yet?” No. “ Is there any new data yet?” No. “ Is there any new data yet?” No. And each wasted request sent and reply received uses up precious battery life
  9. Push can be better than pull Instead of making your phone – with it’s limited battery life – keep asking for information, better for it to sit idle and let the server tell it when new data is available
  10. Your phone doesn’t poll for text messages SMS messages are received by having a data channel that the network operator can use to push notifications to the phone
  11. BlackBerry became famous by extending this to email They have dedicated data channel support for pushing notifications of new email to the smartphone And more recently, this year RIM opened this up by providing a Push API for third party developers So if you are a mobile developer, and want to write an app that reacts to data online without hammering the battery, you can write it for BlackBerry
  12. Apple Push Notification service is a similar idea They provide a push API where Apple servers can push a notification to the mobile From what I’ve read, the Apple approach is implemented differently to BlackBerry, though – relying on keeping an IP connection open between the mobile and server But as a developer, it’s the same kind of thing
  13. Vodafone’s developer program betavine offer Push APIs They offer WAP and SMS flavours of a Push API for developers to experiment with. As a beta program, betavine use a credit based system for the SMS messages, with credits awarded for involvement in the community.
  14. Ericsson offer a Java ME Push API This is for Sony Ericsson and some other J2ME-compatible phones They use an SMS-notification approach to signal to a Java client library on the phone that something is ready to download It is also a beta program, with developers provided with a limited number of credits
  15. Or you can do it yourself Many mobile platforms allow the developer to intercept incoming SMS messages before the user sees them Any text messages received by the phone that meet certain criteria (e.g. sent from a certain number, or containing a certain keyphrase, or starting with a certain word, etc.) are sent to your app instead of the normal messaging application I’ve done this with Windows Mobile before and it’s pretty straightforward. Your app doesn’t even need to be running when messages are received – you add the criteria to the Windows Registry, and the OS launches your app when a SMS message matching the criteria is received The problem with all of these SMS-based approaches, though, is that it’s very expensive per message – you wouldn’t want to write an Instant Messaging app that relied on SMS for every message
  16. Holding an IP connection open is the other main approach An app can connect to the server, then leave the connection open.
  17. MQTT is a protocol and toolkit from IBM for doing this This is the technology I referred to earlier – that I want to quickly introduce you to
  18. MQTT isn’t new MQTT was created over ten years ago – originally to solve the problem of satellite telemetry comms It was a similar challenge to mobile apps today – satellite applications couldn’t poll when comms cost dollars per byte So MQTT was created to address the need for communications with an absolute minimum of network usage – no polling and minimal overhead per message
  19. MQTT starts with a CONNECT An MQTT client on a phone starts by connecting to an MQTT message broker
  20. This is followed by a SUBSCRIBE The app can inform the server of what data it wants pushed to it by subscribing to particular topics
  21. The connection is left open Although idle, the connection is maintained between the mobile and server
  22. This makes push notification possible The server can use this connection to push any data to the client running on the phone
  23. So, instead of this… For apps that need to access data in the cloud that you can’t control, you can compromise. Instead of the typical app which polls something online or in the cloud…
  24. … you can do this With MQTT you can move that polling to a server, letting something on the server (where you don’t care about battery life, etc.) poll the web service. And use MQTT to push it to the mobile when it gets something of interest
  25. A very quick “Hello World” example of how to do it What we have is a free set of tools for doing this easily I want to quickly demo how this can be done
  26. First you need the server This is the message broker software to run on a server. You can download one for free from alphaWorks
  27. Unzip it What you get is a zip file with versions of the server software for a variety of platforms Including the obvious – Windows, Red Hat, Ubuntu, Mac, etc.
  28. Run it It is very configurable, but for now, you can just run the executable – the server is running
  29. An aside for the really geeky You might notice from previous slide that the server was listening on port 1883 This is the assigned port number for the MQTT protocol, which is why it is used by default But you can easily change this if you want to use a different port number
  30. Next, get a client We need an MQTT client – something to send and receive (to publish and subscribe) messages to the broker Java client is an easy place to start. You can download it from an IBM site
  31. Unzip it The zip file you download includes a jar with a sample Java client
  32. Run it Just run the sample jar …
  33. Run it … and you get a little GUI utility app
  34. A first code-free test I want two clients – so that I can send and receive messages First thing to do is to give each client a unique name – I’ve imaginatively used “client1” and “client2”
  35. Get them both to connect to the server Once that’s done, click “Connect” on each GUI You can see the connection in the server log Note you need to specify the address and port number, but I can just leave the localhost defaults for now
  36. Send a message from one. Get it on the other Subscribe to a topic in client 1. Publish a message to that topic from client 2 Client 1 gets the message
  37. Doing the same from code is almost as easy The client zip we downloaded earlier includes a smaller client library This is a sample Java app I wrote using that client library The same three steps apply – first I need to connect to the message broker
  38. Send a message To publish a message, you just call the publish method, giving it the topic and the actual data to send
  39. Receive a message To receive messages, we need to implement one of the MQTT callback interfaces, and register to receive call backs from the MQTT client library
  40. Receive a message Once we’ve done this, we can subscribe to receive messages for topics When a message is pushed from the server, the publishArrived method is called
  41. You don’t have to use Java I’ve demonstrated this using Java because it’s a nice, easy start. But you can do the same from other languages if you prefer Note: not all of these are produced by IBM. The MQTT spec is published, and is relatively simple, so some developers have implemented client libraries in their language-of-choice and shared it with the community
  42. Getting back to mobile The Java client library, for example, runs on many mobile platforms. For example – I created a HelloWorld project for doing this from an Android phone using the J2SE jar
  43. MQTT on Android And here is it running on an emulator
  44. Receiving messages from the sample GUI I can use the sample Java GUI on my desktop as before to publish messages to and from my Android phone
  45. How have we used MQTT? A few examples of how we’ve found push notification useful
  46. Choosing information to be updated about We have this running on mobiles of most platforms – I’ve got it running on my Windows Mobile phone now For demonstration purposes we have some random sources of information from around the office, and if any of these change – such as the light in the office being switched on – this is pushed to the phone Messages pushed to the phone also contain a description of what instructions the users can send in reply – e.g. turn the light back off. It’s not just notification – it’s a control mechanism too The point is this isn’t that we need a mobile app for controlling the office lights, but that we have a generic framework for pushing info to people’s phones, and letting them reply in some way
  47. Other demonstrations A location-based example – pushing information to people’s phone in musems or art galleries, that is relevant to where they are A banking example – securely pushing bank statement updates or payment alerts to people’s phones
  48. Home energy monitoring Pushing updates on how much electricity your home is using
  49. Location-based updates for office and campus environments For each area of the site, a list of topics is broadcast – these are the sources of information that are available in this part of the site A user can choose which ones of these they want to subscribe to, and receive them as notifications pushed to their phone Particularly useful as an accessibility tool – example here shows that fire alarms can be pushed to people’s phones, which is ideal for those with hearing impairments who might otherwise not hear a fire alarm, but could feel a mobile vibrate in their pocket
  50. But… it’s not a silver bullet For all that MQTT is a useful tool in building data-centric mobile apps, it doesn’t mean developers don’t still have to think about battery life.
  51. Push is good It’s true that pushing data to the phone rather than making the phone repeatedly poll does reduce the mobile’s network usage – which by itself is a battery saving But holding the connection open does introduce other factors
  52. Things to consider when holding a data connection open… For example, you generally can’t just open a connection and leave it there. The client needs to periodically send keep-alive messages to keep the connection active You specify the interval to use when you connect – but how do you choose a sensible interval? Difficult to know. Anecdotal evidence, for example, suggests that Vodafone will drop an idle connection after 10 minutes, so if you want your app to run on Vodafone without the mobile having to repeatedly reconnect (expensive in battery terms) then you probably want to specify a keepalive of under 10 minutes Another example might be power management routines in the mobile OS. Instead of thinking “nothing is using the network, so I can dial down to a low-power mode" your open connection might make the mobile think "I've got a connection open, so I must keep the radio in a high-power mode". You could argue that apps that poll allow the mobile OS to make intelligent choices about it's power management - because when the app disconnects, the idle times give the phone an opportunity to switch the radio off or limit it to a low-power mode. For some mobile OS’, an MQTT app that holds a connection open all the time might screw with that, resulting in making the mobile burn through it's battery to maintain a (battery-) expensive data connection that isn't being used anyway.
  53. Developers still need a strategy They might decide that their app doesn’t need to stay connected the whole time. It could disconnect for periods of time under-the-covers to help with power management, then reconnect periodically. Sounds like polling in a roundabout way It is more efficient, because the broker server can remember what topics of information you subscribed to so when you reconnect you don’t need to specify all of the stuff you want to be sent again. It also can buffer any messages that would have been sent to you while you were disconnected, so you they are safely stored until you reconnect.
  54. There are different sizes of message broker From free, to cheap, to expensive – there are different implementations of the server side software – each of which introduces additional capabilities With the free “Really Small Message Broker” I showed earlier, the developer would have to implement any logic of periodically connecting and disconnecting, any client-side buffering needed, etc. in their app In the larger brokers, some of this is done out-of-the-box
  55. MicroBroker offers a transmission control policy You can configure when you want your client to connect and disconnect: At specific times Based on messages buffered up ready to send – e.g. connect after a high watermark of at least 10 buffered messages is passed, and stay connected for as long as a low watermark of 3 buffered messages is exceeded. You can specify that a connection is made if any messages over a certain priority are sent You can specify limits on how often a connection should be made, or how long a connection should be kept open Note: This is using JMS not MQTT – another protocol supported by Micro Broker. You could even factor in information from your mobile device – reducing your connection rate when the battery is running low, for example The point is (whether they code the logic themselves, or configure existing features) the developer needs to decide what is appropriate for the data their app handles For example, pushing out fire alarm notifications needs a connection to be kept open – you can’t poll every 30 minutes with something that urgent! For an app that is getting weather updates, though, always connected is overkill For apps that will be regularly receiving data, without long periods of idleness, keeping the connection open would likely save battery life For apps that will receive data infrequently, polling (or pseudo-polling like this) may be more efficient
  56. The mobile developer has several choices To conclude, if they decide not to poll, the mobile developer writing a data-centric app has a few options open to them: Develop for a platform that provides dedicated support from the network operator – such as BlackBerry and iPhone. The support is baked in to both the network and the handset, and the use of battery life is as efficient as you can hope for SMS Pretty much as efficient, but introduces a cost element that makes it unsuitable for some situations For pushing urgent data on platforms other than BlackBerry/iPhone, however, it’s hard to beat And you have a bunch of APIs to choose from – from network supported ones that include the server side element of how you send messages, to just writing the message handling code yourself using mobile OS APIs Make a data connection to a server and keep it open Again, either doing it yourself, or using a protocol and toolkit such as MQTT How long you hold the connection open for is a decision you have to make, based on the nature of your app – toolkits such as MQTT at least provide you with the building blocks to make it easier to implement, if not any easier to decide what to implement!
  57. Links to everything I’ve talked about at this address