32
Indianapolis GIS Service- Indianapolis GIS Service- Oriented Architecture Oriented Architecture Chuck Carufel, City of Indianapolis Chuck Carufel, City of Indianapolis Joe LaCombe, Woolpert, Inc. Joe LaCombe, Woolpert, Inc.

Indianapolis GIS Service- Oriented Architecture Chuck Carufel, City of Indianapolis Joe LaCombe, Woolpert, Inc

Embed Size (px)

Citation preview

Indianapolis GIS Service-Indianapolis GIS Service-Oriented ArchitectureOriented Architecture

Chuck Carufel, City of IndianapolisChuck Carufel, City of IndianapolisJoe LaCombe, Woolpert, Inc.Joe LaCombe, Woolpert, Inc.

GIS within a Service Oriented GIS within a Service Oriented Architecture, (SOA)Architecture, (SOA)

33

What Is It ?What Is It ?

““A Service-oriented Architecture is a collection of A Service-oriented Architecture is a collection of services that communicate with each other and services that communicate with each other and with applications. The services are self-contained with applications. The services are self-contained and do not depend on the context or state of the and do not depend on the context or state of the other service. These services work within a other service. These services work within a distributed architecture.”distributed architecture.”

Or…..Or…..

Highly ReusableHighly Reusable Standards-basedStandards-based Makes GIS Invisible To The ConsumerMakes GIS Invisible To The Consumer Cross-platform – Machine to MachineCross-platform – Machine to Machine Adds New Capabilities To Old Adds New Capabilities To Old

Apps/DatabasesApps/Databases

ArcGIS Server BasedArcGIS Server Based No User InterfaceNo User Interface No MapNo Map Developer/Integration ToolkitDeveloper/Integration Toolkit SOAP Standard CompliantSOAP Standard Compliant

Simple Object Access Protocol

Service Oriented Architecture Protocol

An XML-based envelope or wrapper with references to underlying protocols.

IndyGIS Web ServicesIndyGIS Web Services

Public Function SimpleGeocodePublic Function SimpleGeocode(_ (_ ByVal address As String, _ ByVal address As String, _

ByVal zone As String, _ ByVal zone As String, _ ByVal level As String, _ ByVal level As String, _

ByVal outputProjection As String, _ByVal outputProjection As String, _ByVal minimumCandidateScore As String, _ByVal minimumCandidateScore As String, _

ByVal minimumMatchScore As String _ByVal minimumMatchScore As String _) As Response ) As Response

Public Function FallbackGeocodePublic Function FallbackGeocode (_ (_ ByVal address As String, _ ByVal address As String, _

ByVal zone As String, _ ByVal zone As String, _ ByVal startLevel As String, _ ByVal startLevel As String, _ ByVal endLevel As String, _ByVal endLevel As String, _

ByVal outputProjection As String, _ByVal outputProjection As String, _ByVal minimumCandidateScore As String, _ByVal minimumCandidateScore As String, _

ByVal minimumMatchScore As String _ByVal minimumMatchScore As String _) As Response) As Response

Example Web Methods

Easy to program against…

Why? From a technical point-of-view… Separate the business logic from what you “see”Separate the business logic from what you “see” Keep all the common, ArcObjects-intense, code on ArcGIS Server Keep all the common, ArcObjects-intense, code on ArcGIS Server

machinemachine• More scalable, centralizedMore scalable, centralized• Keeps you from having multiple sources of select by buffer code…Keeps you from having multiple sources of select by buffer code…

Separate the client from the server Separate the client from the server • deploy web applications on separate web serverdeploy web applications on separate web server• Extremely beneficial if deploying public web sites - eliminates need to Extremely beneficial if deploying public web sites - eliminates need to

deploy ArcGIS Server machine/replicated SDE outside of firewalldeploy ArcGIS Server machine/replicated SDE outside of firewall Remove dependency on ArcGIS Server/Web ADF within your client Remove dependency on ArcGIS Server/Web ADF within your client

applicationapplication

ArcGIS Server

SOAVirtual Earth

Google Earth

Open LayersXML feature data

Example Web ServicesExample Web Services

GIS Centric ClientsGIS Centric Clients

Law Enforcement Map ViewerLaw Enforcement Map Viewer

My NeighborhoodMy NeighborhoodPortalPortal

ArchitectureArchitecture

N-Tiered Architecture - N-Tiered Architecture - • Presentation Presentation Portal Portal

• Business Logic Business Logic Web Services Web Services

• Data Data Configuration & Content Configuration & Content

Highly Reusable Components

Flexible, Scalable, Securable

Each tier focuses on what it does best……..

GIS Web-services

Geocode FindNearest

Point-inPolygon

Find withinRadius

PolygonAnalysis

MapComponent

DataRetrieval

PresentationTier

BusinessLogicTier

DataTier

GIS Map Database

Configuration Database

External Neighborhood Data

Polygon Analysis Find Nearest

Find Within Radius

Point In Polygon

XML request from Portal

XML response to Portal

Data RetrievalWeb Service

Configuration Database

Web Service Request & Response Orchestration

ArcGIS Server Map Server Object

Map Web Service

Non-GIS Centric ClientsNon-GIS Centric Clients

GIS SOA ExampleGIS SOA Example

1) Citizen Calls Mayor’s Action Center

2) Rep Enters Address

GeoCode Web-service

Point-in-Polygon Web-service

Point-in-Polygon Web-service

GIS DatabaseGIS DatabaseGIS Database

3) Address Is GeoCoded 4) Overlay

Info Retrieved

5) Record Passed To Permits

6) Inspector Info Retrieved

MAC CRM MAC CRM SystemSystem

Tidemark Tidemark Permits Permits SystemSystem

The Next Generation…The Next Generation…

Microsoft .NET Framework 3.5Microsoft .NET Framework 3.5

Windows Presentation Windows Presentation FoundationFoundation

Next generation user experienceNext generation user experience

““CardSpace”CardSpace”Digital identity managementDigital identity management

Windows Workflow Windows Workflow FoundationFoundation

Business process Business process modelingmodeling

Windows Communication Windows Communication FoundationFoundation

Service-oriented Service-oriented developmentdevelopment Version 3.5Version 3.5

Programming model, engine Programming model, engine

and tools for building and tools for building

workflow-enabled workflow-enabled

applications… applications…

Windows FoundationsWindows Foundations

Version 3.5Version 3.5

……unified, interoperable unified, interoperable

communication through communication through

productive service oriented productive service oriented

development development

What is a Workflow?What is a Workflow?

Like a flowchart…. or a state diagram…. or based on rules.

A program declared as set of activitiesA program declared as set of activitiesCoordinates people and softwareCoordinates people and software

Has real-world control flowHas real-world control flow

Runs durably and transparentlyRuns durably and transparently

Tolerates dynamic changeTolerates dynamic change

Workflow is the software Workflow is the software implementation of business implementation of business process or business logicprocess or business logic

Service OrchestrationService Orchestration

GIS Web-services

Geocode FindNearest

Point-inPolygon

Find withinRadius

PolygonAnalysis

MapComponent

DataRetrieval

PresentationTier

BusinessLogicTier

DataTier

GIS Map Database

Configuration Database

External Neighborhood Data

How does GIS SOA fit within the How does GIS SOA fit within the enterprise?enterprise?

GIS becomes a visually smaller, yet more powerful component…

That can tie everything together…

CMMS

PermittingERP

CRM

MOSS 2007Content

Management

Version 3.5Version 3.5

Latest technology…

Automated business process workflows…

Thank You

Questions ?