SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Developing Custom Tools
Agenda...
• Dekho Architecture
• Custom Tools Overview
• Communication & Working with the Esri Flex
  API
• Working with the Dekho Web Services API
• Consideration and Best Practices
Dekho Architecture Overview
Dekho Geo-App Portal




Dekho Application Manager

                                                  Geo-App publishing



                                       Roles and access rights definition

        Dekho
      Application
       Manager
                                                Geo-App configuration




 Map Services   Spatial Information   Corporate data   Web Services   Tools Gallery   Report Gallery   Search Tasks
Custom Tools Overview
The Basics
• A way of customising Dekho

• Built as a .swf file which runs alongside Dekho


             Parent Application

               Dekho                    Custom
                                        Tool
               Flash Runtime
The process
• Write        (SWF)
• Deploy       (Application Server i.e. Tomcat)
• Add a button (Dekho Studio)
Start-Up sequence
Client Browser                                             Application Server
                           Dekho Server URL
 Dekho Page
                               Dekho swf
                                                               Dekho UI
                   Tool ‘A’ click (URL to swf on server)
                                                           Tool A
                               Tool ‘A’ swf
                                                               Tool B
                                                                    Tool C
In memory… now what?
Client Browser                                Application Server
 Dekho Page      Option 1:
                 Do you thing… clean up and
  Dekho UI       destruct
                                                  Dekho UI

                 Option 2:
    Tool A       Persist and clean up on      Tool A
                 - Dialogue close or…             Tool B
                 - Second click or…
                 - App shut down                       Tool C
Second click – unload…
Client Browser                   Application Server
 Dekho Page


  Dekho UI                            Dekho UI


    Tool A                       Tool A
                                      Tool B
                                           Tool C
What can you use a custom tool for?
• Launching another browser application
• Launching another client side desktop
  application
• Creating a custom workflow
• Change layers, extent, selection…
• Loading WMS layers
Deploy…..
    • Deploying your tool means making it available
      within the application server i.e. tomcat
    • Common practice to add your custom too to
      the root of the same domain as Dekho




December 10 // www.esriaustralia.com.au
Add…..
   • Add tool to Dekho via Dekho Studio
   • Complete Tool Wizard




December 10 // www.esriaustralia.com.au
Use….
   • Custom tool available on main Dekho Interface




December 10 // www.esriaustralia.com.au
Building your first “Hello
  world” custom tool
Communication & Working with the Esri Flex
                 API
How does my custom tool interact
           with Dekho?
• Broadcast out to the parent application i.e.
  browser
• Receive messages from Dekho
• Send messages to Dekho
• Communicate with Dekho via the Services API
• Communicate with any web services
Broadcast out to the parent
             application
• Parent application can control Dekho
• Parent application can receive messages from
  Dekho
                                   JavaScript or C# client
                                   stubs provided
Working with the Dekho application
• Listening to messages
• API methods made public by Dekho SWF
Intercepting messages from Dekho
• messageFromDekho Function.




 Dekho broadcasts the event as      E.g:
 <eventtype>,<sessionid>         Session, 125482993879
parentApplication
• The Dekho SWF element that loads your
  custom tool
Working with the Esri Flex API

                                              1



                                          2



December 10 // www.esriaustralia.com.au
Working with Dekho selection
    and the Esri Flex API
Working with the Dekho Web Services API
Using Dekho Services API

Parent Application
 Dekho              Custom
                    Tool
Flash Runtime



            Dekho Services API
The Process
• Create channel and remote object
• Get Session Information from
  parentApplication
• Use session information to call Dekho Web
  Services API
Example: Saving selection as a redline
 Client Browser                                         Application Server
  Dekho Page                    Establish AMF Channel

      Dekho UI
                                 DrawRedlines
  Get SessionIn

                  Refresh Map




                                 ClearSelection

                                 SaveBookmark


              Tool A
Using the Dekho Services API
You are responsible for creating and opening a channel.




Your responsible for creating a remote object to the correct service i.e.
“SessionService”



Finally make the call to the Dekho Services and specify the response handlers
Working with Dekho Web
      Service API
Custom Tool Summary
• Dekho’s client extensibility model.
• Ways to communicate with Dekho and the
  parent application:
  – Broadcast out to the parent application
  – Dekho Flex API + Receive & Send messages
  – Communicate with the Dekho Services API
• Your custom tool can use the Esri Flex API
• Your custom tool can use the Dekho Web
  Services API
Considerations and Best
       Practices
Code…
• messageFromDekho Function.




         Mandatory method!!
Clean-up practice
The Dekho Simulator & Debugging
• Simulator is a test harness for custom tools
• Please refer to documentation
• Don’t forget:
  – Server Address URL and Tool URL
  – Map Service Address
• Simulator is limited – mock as necessary
Handling web services
• Tell the user when you’re waiting
• Chose the right channel (for performance and
  environment)
• Assign fault handler functions for service calls
Security
• Security
  – Cross Domain – understanding if your tool needs
    to pull data from another source
Maintenance & Deployment
• Maintenance
  – Make your tool portable, configure external Web
    Services URL address
  – Flex SDK version
  – Esri Flex API version
• Deploying into a scaled environment
Product Information:

www.esriaustralia.com.au/dekho

www.esriaustralia.com.au/dekhohelp

www.esriaustralia.com.au/dekhoblog

Weitere ähnliche Inhalte

Ähnlich wie Tutorial building custom tools

Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
Johnny Kingdom
 
Uni Tour Germany 11.2009
Uni Tour Germany 11.2009Uni Tour Germany 11.2009
Uni Tour Germany 11.2009
Patrick Lauke
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDSC_ GHRCE_  flutter_firebase.pptxGoogleDSC_ GHRCE_  flutter_firebase.pptx
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDeveloperStude22
 
Introduction to xcode
Introduction to xcodeIntroduction to xcode
Introduction to xcode
Sunny Shaikh
 

Ähnlich wie Tutorial building custom tools (20)

Developer Intro to Dekoh
Developer Intro to DekohDeveloper Intro to Dekoh
Developer Intro to Dekoh
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & Bluemix
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
 
Android media framework overview
Android media framework overviewAndroid media framework overview
Android media framework overview
 
Cloud Platform as a Service: Heroku
Cloud Platform as a Service: HerokuCloud Platform as a Service: Heroku
Cloud Platform as a Service: Heroku
 
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on HerokuRapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
 
Uni Tour Germany 11.2009
Uni Tour Germany 11.2009Uni Tour Germany 11.2009
Uni Tour Germany 11.2009
 
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi (Samsung) - Korea Lin...
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi  (Samsung) - Korea Lin...Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi  (Samsung) - Korea Lin...
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi (Samsung) - Korea Lin...
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Online presentation tools
Online presentation toolsOnline presentation tools
Online presentation tools
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
Cordova Tutorial
Cordova TutorialCordova Tutorial
Cordova Tutorial
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDSC_ GHRCE_  flutter_firebase.pptxGoogleDSC_ GHRCE_  flutter_firebase.pptx
GoogleDSC_ GHRCE_ flutter_firebase.pptx
 
Introduction to xcode
Introduction to xcodeIntroduction to xcode
Introduction to xcode
 
Jfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the CloudJfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the Cloud
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
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​
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
"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 ...
 

Tutorial building custom tools

  • 2. Agenda... • Dekho Architecture • Custom Tools Overview • Communication & Working with the Esri Flex API • Working with the Dekho Web Services API • Consideration and Best Practices
  • 4. Dekho Geo-App Portal Dekho Application Manager Geo-App publishing Roles and access rights definition Dekho Application Manager Geo-App configuration Map Services Spatial Information Corporate data Web Services Tools Gallery Report Gallery Search Tasks
  • 5.
  • 7. The Basics • A way of customising Dekho • Built as a .swf file which runs alongside Dekho Parent Application Dekho Custom Tool Flash Runtime
  • 8. The process • Write (SWF) • Deploy (Application Server i.e. Tomcat) • Add a button (Dekho Studio)
  • 9. Start-Up sequence Client Browser Application Server Dekho Server URL Dekho Page Dekho swf Dekho UI Tool ‘A’ click (URL to swf on server) Tool A Tool ‘A’ swf Tool B Tool C
  • 10. In memory… now what? Client Browser Application Server Dekho Page Option 1: Do you thing… clean up and Dekho UI destruct Dekho UI Option 2: Tool A Persist and clean up on Tool A - Dialogue close or… Tool B - Second click or… - App shut down Tool C
  • 11. Second click – unload… Client Browser Application Server Dekho Page Dekho UI Dekho UI Tool A Tool A Tool B Tool C
  • 12. What can you use a custom tool for? • Launching another browser application • Launching another client side desktop application • Creating a custom workflow • Change layers, extent, selection… • Loading WMS layers
  • 13. Deploy….. • Deploying your tool means making it available within the application server i.e. tomcat • Common practice to add your custom too to the root of the same domain as Dekho December 10 // www.esriaustralia.com.au
  • 14. Add….. • Add tool to Dekho via Dekho Studio • Complete Tool Wizard December 10 // www.esriaustralia.com.au
  • 15. Use…. • Custom tool available on main Dekho Interface December 10 // www.esriaustralia.com.au
  • 16. Building your first “Hello world” custom tool
  • 17. Communication & Working with the Esri Flex API
  • 18. How does my custom tool interact with Dekho? • Broadcast out to the parent application i.e. browser • Receive messages from Dekho • Send messages to Dekho • Communicate with Dekho via the Services API • Communicate with any web services
  • 19. Broadcast out to the parent application • Parent application can control Dekho • Parent application can receive messages from Dekho JavaScript or C# client stubs provided
  • 20. Working with the Dekho application • Listening to messages • API methods made public by Dekho SWF
  • 21. Intercepting messages from Dekho • messageFromDekho Function. Dekho broadcasts the event as E.g: <eventtype>,<sessionid> Session, 125482993879
  • 22. parentApplication • The Dekho SWF element that loads your custom tool
  • 23. Working with the Esri Flex API 1 2 December 10 // www.esriaustralia.com.au
  • 24. Working with Dekho selection and the Esri Flex API
  • 25. Working with the Dekho Web Services API
  • 26. Using Dekho Services API Parent Application Dekho Custom Tool Flash Runtime Dekho Services API
  • 27. The Process • Create channel and remote object • Get Session Information from parentApplication • Use session information to call Dekho Web Services API
  • 28. Example: Saving selection as a redline Client Browser Application Server Dekho Page Establish AMF Channel Dekho UI DrawRedlines Get SessionIn Refresh Map ClearSelection SaveBookmark Tool A
  • 29. Using the Dekho Services API You are responsible for creating and opening a channel. Your responsible for creating a remote object to the correct service i.e. “SessionService” Finally make the call to the Dekho Services and specify the response handlers
  • 30. Working with Dekho Web Service API
  • 31. Custom Tool Summary • Dekho’s client extensibility model. • Ways to communicate with Dekho and the parent application: – Broadcast out to the parent application – Dekho Flex API + Receive & Send messages – Communicate with the Dekho Services API • Your custom tool can use the Esri Flex API • Your custom tool can use the Dekho Web Services API
  • 35. The Dekho Simulator & Debugging • Simulator is a test harness for custom tools • Please refer to documentation • Don’t forget: – Server Address URL and Tool URL – Map Service Address • Simulator is limited – mock as necessary
  • 36. Handling web services • Tell the user when you’re waiting • Chose the right channel (for performance and environment) • Assign fault handler functions for service calls
  • 37. Security • Security – Cross Domain – understanding if your tool needs to pull data from another source
  • 38. Maintenance & Deployment • Maintenance – Make your tool portable, configure external Web Services URL address – Flex SDK version – Esri Flex API version • Deploying into a scaled environment