Tutorials building connectors

Post on 05-Jul-2015

909 views 1 download

description

Slides to accompany this post: http://www.dekho.com.au/building-integration-connectors-with-dekho-tutorial-now-available/

transcript

Building System Integration Connectors

with Dekho

Agenda

• What are we integrating?

• “The link”- Integration queries

• Ready, go, launch… – Custom tools

– Launching web applications

– Launching client applications

• And now in reverse… launching Dekho

Integration is key…

What are we integrating? Data

Integration

Search

Layer Info

Feature info

URL and Images

System Integration

Launch 3rd party app

Launch Dekho from a 3rd party app

Dekho Admin with

no coding

Requires Coding

In Flash + C# (or other)

Launching a system from Dekho

1. Selected feature(s) in Dekho

2. Click a button

3. Open a 3rd party app at specific context

The process Locate specific asset

Launch doc. mgmt. system

View asset related documents

I need to…

1. Get the right data ?

2. Create a launch button ?

3. Connect and launch ?

Getting the data you need

Asset Mgmt system

Asset ID

GDB

ObjectID

AssetID is an attribute for the feature in the GDB

GDB link to 3rd party systems

We need to map Spatial IDs

to non-spatial IDs

Dekho Integration Query

• SQL query that translates one set of values (OBJECTID) to another (ASSETID)

Dekho Integration Query

Dekho Integration Query

Building Integration queries

I need to…

1. Get the right data INTEGRATION QUERY

2. Create a launch button ?

3. Connect and launch ?

What are Dekho custom tools?

• Developed in flex

• Plugged to Dekho as ‘Add Ins’

• Loaded at run time

• Add buttons to Toolbar

• Reuse in different apps

Custom tool code behind

• Invoked on custom tool ‘click’ event

• Using the integration query – Dekho web service API

– SessionID

– Integration QueryID

• Generate launch URL – Web application

– Client application

Building custom tools

• Watch ‘Building custom tools’ tutorial – Build

– Compile

– Deploy

– Maintain

Building a simple integration custom tool

I need to…

1. Get the right data INTEGRATION QUERY

2. Create a launch button CUSTOM TOOLS

3. Connect and launch ?

Integration Patterns

• Generating Web-App URL

• URL structure (permalinks?)

• Requires NO installation on the client

side

• Launching desktop installed software

• Requires stepping outside the

browser sandbox

• Launching techniques:

– SDK

– Command line

– File generation

– COM

Launching a web app

• Generating Web-App URL

• Completely custom tool driven

HTTP://[Web_Based_Parameterized_URL]

Launching NeatStreets.com.au

Integration Patterns

• Generating Web-App URL

• Web app URL structure (permalinks?)

• Requires NO installation on the client

side

• Launching desktop installed software

• Requires stepping outside the

browser sandbox

• Launching techniques:

– SDK

– Command line

– File generation

– COM

Stepping out side the browser sand box

Desktop Windows

Application

Registering a new protocol extension

Mapping URL protocol to an installed EXE file

KEY_CLASSES_ROOT alert (Default) = "URL:MyProtocol Protocol" URL Protocol = "" DefaultIcon (Default) = “My_Protocol_Handler.exe,1" shell open command (Default) = "C:\Program Files\Dekho\My_Protocol_Handler.exe" "%1"

New protocol ‘Name’

Path to protocol handler executable

Registering a new protocol extension

Mapping URL protocol to an installed EXE file

KEY_CLASSES_ROOT alert (Default) = "URL:http Protocol" URL Protocol = "" DefaultIcon (Default) = “My_Protocol_Handler.exe,1" shell open command (Default) = "C:\Program Files\Internet Explorer\iexplore.exe" "%1"

Stepping out side the browser sand box

Desktop Windows

Application

dekhoto[MYAPP]:\\param_string

Integration Connector

My.exe

• SDK

• Command line

• File generation

• COM

Custom tool click

How connectors work

args[0] = param string

How connectors work

DekhoToTrim:\\1234,9873,524,12

args[0] = “DekhoToTrim:\\1234,9873,524,12”

Installing connectors

• Deploy connector files

• Register protocol + handler

BaseConnector

• VS2010 solution

• BaseConnector class

– Logging

– Exception handling

• Installer

– Files

– Registry manipulation

Building a simple connector

Integration Patterns

• Generating Web-App URL

• Web app URL structure (permalinks?)

• Requires NO installation on the client

side

• Launching desktop installed software

• Requires stepping outside the

browser sandbox

• Launching techniques:

– SDK

– Command line

– File generation

– COM

I need to…

1. Get the right data INTEGRATION QUERY

2. Create a launch button CUSTOM TOOLS

3. Connect and launch WEB/CLIENT PATTERNS

Esri Australia Integration Library

• Applications we have integrated with

• Owned and managed by professional services

• Install and configure

• Check for vendor versioning

Pathway client

connector

Pathway Custom tool code

Trim client

connector

Trim Custom tool code

Hansen 8 Custom tool code

Hansen 8

Agenda

• What are we integrating?

• “The link”- Integration queries

• Ready, go, launch… – Custom tools

– Launching web applications

– Launching client applications

• Launching Dekho

Launching Dekho in 3.1 • URL is your way in

• System specific ‘Plug-Ins’

• Separate Dekho instance every time

Application

Launch!

http::appserver/dekho/Parameters...

Dekho URL

• Specific map and extent Dekho?map=1&x=331809.928&y=5818278.314&distance=100

• Specific bookmark Dekho?bookmark=bookmarkname

Dekho URL

• Running a search query Dekho?queryid=12&queryvalues=12345|Main||Melbourne

Dekho Integration Query

• Reverse mapping (AssetID -> ObjectID)

• Used in Dekho URL

Dekho URL

• Select and zoom to features Dekho?integrationqueryname=…&externalids=…

Launching Dekho using URL Parameters

Agenda

• What are we integrating?

• “The link”- Integration queries

• Ready, go, launch… – Custom tools

– Launching web applications

– Launching client applications

• Launching Dekho

Building your own integration connectors

• What is the desired outcome?

• Web or client application?

• How ‘difficult’ is it to launch

– Well documented parameterized URL structure?

– Command line arguments?

– SDK / API?

• Follow web/client integration patterns discussed earlier

• Handle logging and errors well

3.1 Open Integration Framework • ‘Custom tools’ based approach

– No More ‘Integration Tools’

• ‘Open’

– Build your own

– Extend integration logic

• Cleaner versioning and easier maintenance

Product Information:

www.esriaustralia.com.au/dekho

www.esriaustralia.com.au/dekhohelp

www.esriaustralia.com.au/dekhoblog