SlideShare a Scribd company logo
User Task
Delegation in
Applications
Friedger Müffke
OpenIntents.org

Campus Party 2012 Berlin
Getting a 3-
Months Job
Done in 30
Minutes
Friedger Müffke
OpenIntents.org

Campus Party 2012 Berlin
Context


Task-driven software engineering

User task
Interaction design

Application platform with monolithic
applications that perform user tasks
History of
Sharing between Application
Interprocess communication (IPC)

● Objects
  ○ Windows: DDE/COM
  ○ J2EE: JavaBeans
● Functionality
  ○ WebServices + UDDI
  ○ RPC
● Graphical User Interface
  ○ Dynvoker, TU Dresden (WS/GUI annotations)
Problem Description



User Task Delegation is an architecture
pattern designed to address the problem of a
Component (Site/App) wanting to do a certain
User Task (Action) with a Partner known to the
User but not the Component.
NASCAR problem
Examples
● Share                                ● LogIn
  Twitter, Email,..                      OpenId

● Pick                                 ● Subscribe
  Picasa, Flickr, Youtube, Webcam,..     Notifications by e-mail, sms, ..

● Edit                                 ● Search
  image, document, ..                    Wikipedia, dictionary, ..

● Save                                 ● Check-in and other
  Google Drive, locally, ..              Activity Stream
● Props                                  verbs
  Like, praise, +1, ..

● Print
  Fax, pdf, ..
Android: Intents



●   Freely definable actions
●   Central repository in platform
●   Registration on install time
●   PackageManagerService class
●   No official discovery, but openintents.
    org/en/registry
Android: Intents

                   in Manifest.xml

                   <intent-filter>
                     <action
                       android:name= "android.intent.VIEW"/>
                     <data
                       android:scheme = "http"/>
                   </intent-filter>




                   in Application

                   Intent intent = new Intent();
                   intent.setAction(Intent.ACTION_VIEW);
                   intent.setData("http://campus-party.eu");
                   context.startActivity(intent);
Web Apps: WebIntents/WebActivities



●   Specified as W3C draft and Mozilla proposal
●   User agent manages registry
●   Registration on visit or programmatically
●   Suggestions via Chrome Web Store
●   discovery maybe via openintents.
    org/en/registry
Web Apps: WebIntents/WebActivities




         Available in Chrome Canary Build
Web Apps: WebIntents/WebActivities

var startActivity =
 window.navigator.startActivity ||
 window.navigator.webkitStartActivity;

var imageUrl =
 document.getElementById("main-image").src;

var intent = new
 Intent("http://webintents.org/share",
                  "image/*", imageUrl);

var onSuccess = function(data) { /* woot */ };
var onError = function(data) { /* boooo */ };

startActivity.call(intent, onSuccess, onError);
WP7 / Win 8: Contracts/Extensions

● Defined by platform
● More specific tasks (e.g. account picture)
● Agreement between two apps or between
  app and Windows
● Different API (code) for each user task
● Declarative registration for serving apps
● Event handlers
● No discovery
WP7 / Win 8: Contracts/Extensions
in client app (sharing)
var dataTransferManager =
   Windows.ApplicationModel.DataTransfer.
          DataTransferManager.getForCurrentView();
dataTransferManager.addEventListener("datarequested",
   function (e) {
       // Code to handle event goes here.
   });
in serving app (file picker)
<Extension Category="windows.fileOpenPicker"
                     StartPage="fileOpenPicker.html">
   <FileOpenPicker>
               <SupportedFileTypes>
                    <SupportsAnyFileType />
               </SupportedFileTypes>
   </FileOpenPicker>
Definition
User Task Delegation is an architecture
pattern where semantically defined tasks are
performed by third-party components.

1.   Task definition
2.   Registration of serving components
3.   Invocation by client component
4.   Selection from registry by platform with help of user
5.   Delivery to service
6.   Response from serving component to client component
Further topics

● Discovery for developers and users
● Dependency Management

● Implicit vs. explicit delegation
● Delegation architecture vs.
   trusted subsystem
● Data flow and security/privacy
● Remote Delegation (e.g. PLAY_TO)
● Between Native and Web
Android Meets WebIntents
● Google Summer of Code 2012 project
● Cheng Zheng, mentored by OpenIntents
● Deliverables:
  ○ User agent with registry and native app integration
  ○ Helper lib for extended chooser dialog
  ○ Sample app

           https://github.com/openintents/gsoc2012/wiki
Android Meets Web
Questions ?




              Friedger Müffke
              openintents.org

                     @fmdroid
              gplus.to/friedger
Links

Android Intents

WebIntents Specification
WebActivities

Windows 8 Contracts and Extensions

More Related Content

Viewers also liked

Open Governance in Mobile - SFD 2013 - HSBXL
Open Governance in Mobile -  SFD 2013 - HSBXLOpen Governance in Mobile -  SFD 2013 - HSBXL
Open Governance in Mobile - SFD 2013 - HSBXL
Friedger Müffke
 
Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015
Friedger Müffke
 
Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating Apps
Friedger Müffke
 
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeAndroid Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Friedger Müffke
 
Google Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitGoogle Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitFriedger Müffke
 
Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012Friedger Müffke
 

Viewers also liked (6)

Open Governance in Mobile - SFD 2013 - HSBXL
Open Governance in Mobile -  SFD 2013 - HSBXLOpen Governance in Mobile -  SFD 2013 - HSBXL
Open Governance in Mobile - SFD 2013 - HSBXL
 
Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015
 
Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating Apps
 
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeAndroid Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
 
Google Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitGoogle Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 Cebit
 
Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012
 

Similar to Delegating user tasks in applications

Open Intents - Android Intents Mechanism and Dependency Management
Open Intents - Android Intents Mechanism and Dependency ManagementOpen Intents - Android Intents Mechanism and Dependency Management
Open Intents - Android Intents Mechanism and Dependency Management
Friedger Müffke
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
Haim Michael
 
Android Made Simple
Android Made SimpleAndroid Made Simple
Android Made Simple
Gabriel Dogaru
 
Best android classes in mumbai
Best android classes in mumbaiBest android classes in mumbai
Best android classes in mumbai
Vibrant Technologies & Computers
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop material
Reza Yogaswara
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
Diego Grancini
 
[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop
OWASP
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & js
Senthamil Selvan
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneursRodrigo Gil
 
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Andrew Mackenzie
 
Google Dev Fest Presentation
Google Dev Fest PresentationGoogle Dev Fest Presentation
Google Dev Fest Presentation
Andrew Mackenzie
 
Google DevFest 2012 Presentation
Google DevFest 2012 PresentationGoogle DevFest 2012 Presentation
Google DevFest 2012 Presentation
Daniel Ruiz Giménez
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
James Williams
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
Aly Abdelkareem
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
umesh patil
 
Android overview
Android overviewAndroid overview
Android overview
Has Taiar
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdk
firenze-gtug
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a NutshellAleix Solé
 
Android development
Android developmentAndroid development
Android development
Parinda Rajapaksha
 

Similar to Delegating user tasks in applications (20)

Open Intents - Android Intents Mechanism and Dependency Management
Open Intents - Android Intents Mechanism and Dependency ManagementOpen Intents - Android Intents Mechanism and Dependency Management
Open Intents - Android Intents Mechanism and Dependency Management
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Android Made Simple
Android Made SimpleAndroid Made Simple
Android Made Simple
 
Best android classes in mumbai
Best android classes in mumbaiBest android classes in mumbai
Best android classes in mumbai
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop material
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 
[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & js
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
 
Google Dev Fest Presentation
Google Dev Fest PresentationGoogle Dev Fest Presentation
Google Dev Fest Presentation
 
Google DevFest 2012 Presentation
Google DevFest 2012 PresentationGoogle DevFest 2012 Presentation
Google DevFest 2012 Presentation
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Android overview
Android overviewAndroid overview
Android overview
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdk
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a Nutshell
 
Android development
Android developmentAndroid development
Android development
 

More from Friedger Müffke

Open intents Open Governance
Open intents Open GovernanceOpen intents Open Governance
Open intents Open Governance
Friedger Müffke
 
Highlights Google I/O 2011
Highlights Google I/O 2011Highlights Google I/O 2011
Highlights Google I/O 2011
Friedger Müffke
 
Open Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phonesOpen Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phones
Friedger Müffke
 
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Friedger Müffke
 
Open intents, open apps and dependencies
Open intents, open apps and dependenciesOpen intents, open apps and dependencies
Open intents, open apps and dependenciesFriedger Müffke
 
App inventor for android and similar tools
App inventor for android and similar toolsApp inventor for android and similar tools
App inventor for android and similar tools
Friedger Müffke
 
Open Intents And Dependencies
Open Intents And DependenciesOpen Intents And Dependencies
Open Intents And Dependencies
Friedger Müffke
 

More from Friedger Müffke (8)

Open intents Open Governance
Open intents Open GovernanceOpen intents Open Governance
Open intents Open Governance
 
Highlights Google I/O 2011
Highlights Google I/O 2011Highlights Google I/O 2011
Highlights Google I/O 2011
 
Open Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phonesOpen Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phones
 
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
 
Open intents, open apps and dependencies
Open intents, open apps and dependenciesOpen intents, open apps and dependencies
Open intents, open apps and dependencies
 
Glass
GlassGlass
Glass
 
App inventor for android and similar tools
App inventor for android and similar toolsApp inventor for android and similar tools
App inventor for android and similar tools
 
Open Intents And Dependencies
Open Intents And DependenciesOpen Intents And Dependencies
Open Intents And Dependencies
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

Delegating user tasks in applications

  • 1. User Task Delegation in Applications Friedger Müffke OpenIntents.org Campus Party 2012 Berlin
  • 2. Getting a 3- Months Job Done in 30 Minutes Friedger Müffke OpenIntents.org Campus Party 2012 Berlin
  • 3. Context Task-driven software engineering User task Interaction design Application platform with monolithic applications that perform user tasks
  • 4. History of Sharing between Application Interprocess communication (IPC) ● Objects ○ Windows: DDE/COM ○ J2EE: JavaBeans ● Functionality ○ WebServices + UDDI ○ RPC ● Graphical User Interface ○ Dynvoker, TU Dresden (WS/GUI annotations)
  • 5. Problem Description User Task Delegation is an architecture pattern designed to address the problem of a Component (Site/App) wanting to do a certain User Task (Action) with a Partner known to the User but not the Component.
  • 7. Examples ● Share ● LogIn Twitter, Email,.. OpenId ● Pick ● Subscribe Picasa, Flickr, Youtube, Webcam,.. Notifications by e-mail, sms, .. ● Edit ● Search image, document, .. Wikipedia, dictionary, .. ● Save ● Check-in and other Google Drive, locally, .. Activity Stream ● Props verbs Like, praise, +1, .. ● Print Fax, pdf, ..
  • 8. Android: Intents ● Freely definable actions ● Central repository in platform ● Registration on install time ● PackageManagerService class ● No official discovery, but openintents. org/en/registry
  • 9. Android: Intents in Manifest.xml <intent-filter> <action android:name= "android.intent.VIEW"/> <data android:scheme = "http"/> </intent-filter> in Application Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData("http://campus-party.eu"); context.startActivity(intent);
  • 10. Web Apps: WebIntents/WebActivities ● Specified as W3C draft and Mozilla proposal ● User agent manages registry ● Registration on visit or programmatically ● Suggestions via Chrome Web Store ● discovery maybe via openintents. org/en/registry
  • 11. Web Apps: WebIntents/WebActivities Available in Chrome Canary Build
  • 12. Web Apps: WebIntents/WebActivities var startActivity = window.navigator.startActivity || window.navigator.webkitStartActivity; var imageUrl = document.getElementById("main-image").src; var intent = new Intent("http://webintents.org/share", "image/*", imageUrl); var onSuccess = function(data) { /* woot */ }; var onError = function(data) { /* boooo */ }; startActivity.call(intent, onSuccess, onError);
  • 13. WP7 / Win 8: Contracts/Extensions ● Defined by platform ● More specific tasks (e.g. account picture) ● Agreement between two apps or between app and Windows ● Different API (code) for each user task ● Declarative registration for serving apps ● Event handlers ● No discovery
  • 14. WP7 / Win 8: Contracts/Extensions in client app (sharing) var dataTransferManager = Windows.ApplicationModel.DataTransfer. DataTransferManager.getForCurrentView(); dataTransferManager.addEventListener("datarequested", function (e) { // Code to handle event goes here. }); in serving app (file picker) <Extension Category="windows.fileOpenPicker" StartPage="fileOpenPicker.html"> <FileOpenPicker> <SupportedFileTypes> <SupportsAnyFileType /> </SupportedFileTypes> </FileOpenPicker>
  • 15. Definition User Task Delegation is an architecture pattern where semantically defined tasks are performed by third-party components. 1. Task definition 2. Registration of serving components 3. Invocation by client component 4. Selection from registry by platform with help of user 5. Delivery to service 6. Response from serving component to client component
  • 16. Further topics ● Discovery for developers and users ● Dependency Management ● Implicit vs. explicit delegation ● Delegation architecture vs. trusted subsystem ● Data flow and security/privacy ● Remote Delegation (e.g. PLAY_TO) ● Between Native and Web
  • 17. Android Meets WebIntents ● Google Summer of Code 2012 project ● Cheng Zheng, mentored by OpenIntents ● Deliverables: ○ User agent with registry and native app integration ○ Helper lib for extended chooser dialog ○ Sample app https://github.com/openintents/gsoc2012/wiki
  • 19. Questions ? Friedger Müffke openintents.org @fmdroid gplus.to/friedger