62
Best Practices and Design Patterns for Best Practices and Design Patterns for Defense Developers Defense Developers Kyle Krattiger Kyle Krattiger Christopher Moore Christopher Moore ESRI Defense Solutions ESRI Defense Solutions

Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practices and Design Patterns for Best Practices and Design Patterns for Defense DevelopersDefense Developers

Kyle KrattigerKyle KrattigerChristopher Moore Christopher Moore

ESRI Defense SolutionsESRI Defense Solutions

Page 2: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

AgendaAgenda

•• Typical Defense Application RequirementsTypical Defense Application Requirements•• Defense Development and the ArcGIS Defense Development and the ArcGIS

PlatformPlatform•• About Patterns and PracticesAbout Patterns and Practices•• Sample Best PracticesSample Best Practices•• Military Analyst Military Analyst •• Military Symbology with the Military Overlay Military Symbology with the Military Overlay

Editor (MOLE)Editor (MOLE)•• Sample Reference ApplicationSample Reference Application•• ConclusionConclusion

Page 3: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Defense Application Development Defense Application Development and the ArcGIS Platformand the ArcGIS Platform

Page 4: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

EnterpriseInformation

Systems

EnterpriseInformation

Systems

Elements of Defense Information SystemsElements of Defense Information Systems

Personnel

Equipment

Training

Logistics, Supply, and Maintenance

Task Organization / Force Structure

CombatInformation

Planning

Battlefield Systems

GIS

Page 5: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Providing Geospatial Intelligence …A Common Operational Perspective

Geospatial Visualization and Analysis…a Key Component of the Integrated Battlespace

Page 6: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Making Data AvailableMaking Data Available

UbiquitousGlobal Network

MetadataCatalogs

Enterprise &Community

Web Sites

Application Services(e.g., Web)

Shared DataSpace

Metadata Registries

Security Services(e.g., PKI,

SAML)

Automated search of data based on core metadata standard. Pulls data of interest. Based on producer registered format and definitions, translates into needed structure.

Consumer

Understand the data format to build applications that post, process, exchange, and display target information.

Developer

Describes content using metadata

Posts metadata in catalogs and datain shared space

Streaming video available for use, tagged and stored in shared space. Metadata added to catalog based on registered format.

Producer

Searches metadata catalogs to find data (e.g., community and

enterprise-wide search services)

Analyzes metadata to determine context of

data found

Pulls selected data based on understanding of metadata

UbiquitousGlobal Network

MetadataCatalogs

Enterprise &Community

Web Sites

Application Services(e.g., Web)

Shared DataSpace

Metadata Registries

Security Services

Automated search of data based on core metadata standard. Pulls data of interest. Based on producer registered format and definitions, translates into needed structure.

Consumer

Understand the data format to build applications that post, process, exchange, and display target information.

Developer

Describes content using metadata

Posts metadata in catalogs and datain shared space

Streaming video available for use, tagged and stored in shared space. Metadata added to catalog based on registered format.

Producer

Searches metadata catalogs to find data (e.g., community and

enterprise-wide search services)

Analyzes metadata to determine context of

data found

Pulls selected data based on understanding of metadata

Posts to and usesmetadata registries to structure data and document formats for

reuse and interoperability

Page 7: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Maps and Globes

Geodata Sets

Work Flow Models

Data Models

Metadata

Together they represent the building blocks of geographic knowleTogether they represent the building blocks of geographic knowledgedge

““AbstractsAbstracts”” Intelligence (Knowledge):Intelligence (Knowledge):Five Basic ElementsFive Basic Elements

Page 8: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

. . . and Makes Them Directly Usable & Accessible

GIS Manages These Elements in a GIS Manages These Elements in a GeodatabaseGeodatabase

MetadataMetadata

ModelsModelsMapsMaps

GeodataGeodataSetsSets

DataDataModelsModels

NetworkNetworkGISGIS

GeodatabaseGeodatabase

Encapsulating Knowledge

Page 9: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Fuse Data/KnowledgeSystematize Analysis/Processing/Workflow

Space and Time

Enable IntuitiveAnalysis and Decisions

Better, Faster, and Cheaper

Share the Data, Knowledge,Workflow, and Decisions

Analysis and Decision Support Analysis and Decision Support ……with GISwith GIS

Network

Page 10: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Typical Defense Application Typical Defense Application RequirementsRequirements

1.1. Map DisplayMap Display2.2. Map NavigationMap Navigation3.3. Military Symbology DisplayMilitary Symbology Display4.4. Symbology Symbology –– Static Static & & DynamicDynamic5.5. Add and remove layersAdd and remove layers6.6. Change layer propertiesChange layer properties

•• Layer visibility, order, transparency, etc.Layer visibility, order, transparency, etc.7.7. IntervisibilityIntervisibility AnalysisAnalysis

•• Line of Sight, Terrain Profile, Line of Sight, Terrain Profile, ViewshedsViewsheds8.8. Creation and Update Performance Creation and Update Performance

Page 11: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Functional Components of a GISFunctional Components of a GIS

Geospatial TradecraftGeospatial Tradecraft

Visualization

Interoperability

Metadata, Quality, Geodatabase

Geoprocessing, predictability & UncertaintyCollaboration

Mapping Space & Time

…In a Services Oriented Architecture

Page 12: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Factors that Differentiate Defense Factors that Differentiate Defense Development Development

•• Defense usage differs due to the importance of Defense usage differs due to the importance of –– Having numerous Client Application Viewers available Having numerous Client Application Viewers available

(Thin & Thick, Web, Smart Client, 2D & 3D)(Thin & Thick, Web, Smart Client, 2D & 3D)–– Highly collaborativeHighly collaborative–– Data modeling (sharing, customizing, and extending)Data modeling (sharing, customizing, and extending)–– Data interoperability with a wide range of legacy and Data interoperability with a wide range of legacy and

emerging data types (VPF, RFP, WMS/WFS, etc.)emerging data types (VPF, RFP, WMS/WFS, etc.)–– Performance Performance –– operating in a real time environmentoperating in a real time environment–– SecuritySecurity–– ScalabilityScalability–– Terrain and Terrain Modeling/AnalysisTerrain and Terrain Modeling/Analysis

Page 13: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Typical Defense Applications based on Typical Defense Applications based on the ArcGIS Platformthe ArcGIS Platform

•• Command and ControlCommand and Control•• Battlefield Planning and ManagementBattlefield Planning and Management

–– Mission Planning Mission Planning –– Terrain analysisTerrain analysis

•• Intelligence GatheringIntelligence Gathering•• Defense and Intelligence Geospatial AnalysisDefense and Intelligence Geospatial Analysis•• Data Product Preparation (Raster and Vector)Data Product Preparation (Raster and Vector)•• Incident Planning and ResponseIncident Planning and Response•• Search and RescueSearch and Rescue•• Facility, environmental, and infrastructure Facility, environmental, and infrastructure

managementmanagement

Page 14: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

ArcGIS Integration Strategies and ArcGIS Integration Strategies and Deployment Platforms Deployment Platforms –– Desktop ClientsDesktop Clients

•• Desktop ClientsDesktop Clients–– ArcGIS DesktopArcGIS Desktop

•• Desktop ExtensionsDesktop Extensions•• Leverage the full power of ArcGIS Desktop and develop Leverage the full power of ArcGIS Desktop and develop

plugplug--in extensions for any additional needed functionalityin extensions for any additional needed functionality–– ArcGIS EngineArcGIS Engine

•• Standalone Applications based on ArcGIS Engine Controls Standalone Applications based on ArcGIS Engine Controls and the standard ArcObjects GIS frameworkand the standard ArcObjects GIS framework

•• CostCost--effective deployment with a smaller footprint requiring effective deployment with a smaller footprint requiring only an ArcGIS Engine Runtimeonly an ArcGIS Engine Runtime

–– Development in standard developer languages Development in standard developer languages including COM, .NET, Java, and C++ including COM, .NET, Java, and C++

Page 15: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

ArcGIS Integration Strategies and Deployment ArcGIS Integration Strategies and Deployment Platforms Platforms –– Web Clients and Smart ClientsWeb Clients and Smart Clients

•• Web ClientsWeb Clients–– Embedded Applications (Applets/ActiveX Controls)Embedded Applications (Applets/ActiveX Controls)–– Pure HTML/XML and JavaScript over HTTP(S)Pure HTML/XML and JavaScript over HTTP(S)

•• Can use standard Web Browsers on all computersCan use standard Web Browsers on all computers•• Requires no additional software Requires no additional software •• Useful for users that do not have advanced requirementsUseful for users that do not have advanced requirements

–– ArcIMS and ArcGIS ServerArcIMS and ArcGIS Server•• Smart Clients Smart Clients –– ADF FrameworkADF Framework

–– Extends ArcGIS Server with an application web service that Extends ArcGIS Server with an application web service that supports:supports:

•• Raster and vector extraction/cachingRaster and vector extraction/caching•• Transaction ManagementTransaction Management

–– New easyNew easy--toto--use Smart Client Developer Kituse Smart Client Developer Kit•• Cross platform (mobile and desktop)Cross platform (mobile and desktop)•• Templates, integrated documentationTemplates, integrated documentation

Page 16: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Deployment PlatformsDeployment PlatformsWeb ClientsWeb Clients

ArcGIS Server ClientArcGIS Server Client ArcIMS ClientArcIMS Client

Page 17: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

NetNet--Centric via Web ServicesCentric via Web Services

Internet, LAN, WANInternet,

LAN, WAN

Maps

Intelligence data,

imagery

Platform & sensor related data

End user fuses dataon demand

Meteorologicaldata

Page 18: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•
Page 19: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Deployment PlatformsDeployment PlatformsDesktop PlatformsDesktop Platforms

2D2D 3D3D

Page 20: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Dynamic GISDynamic GIS

•• Dynamic DisplayDynamic Display–– of spatially related informationof spatially related information–– Visualizing changes in realVisualizing changes in real--time in a continuous time in a continuous

mannermanner•• Animated moving objectsAnimated moving objects•• Animated object representationsAnimated object representations

•• Dynamic ContentDynamic Content–– Frequent update of the contentFrequent update of the content

•• LocationLocation•• OrientationOrientation•• AttributesAttributes

•• Display FilteringDisplay Filtering

Page 21: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Defense Modeling and SimulationDefense Modeling and SimulationHLA/DIS Integration DemonstrationHLA/DIS Integration Demonstration

•• Embedded trainingEmbedded training•• Planning and rehearsalPlanning and rehearsal

nkLayer0.av

1 - ArcMapHPDVRLink2D_1.mov.lnk

•• Live operationLive operation•• After Action Review (AAR)After Action Review (AAR)

Page 22: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

About Patterns and PracticesAbout Patterns and Practices

Page 23: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Patterns and PracticesPatterns and PracticesMotivationMotivation

•• Patterns facilitate reuse of successful software Patterns facilitate reuse of successful software architectures, designs, and architectures, designs, and provenproven solutionssolutions

•• Capture accumulated expert knowledge and Capture accumulated expert knowledge and design tradeoffs design tradeoffs

•• Pass on this expert 'wisdom' on how to Pass on this expert 'wisdom' on how to architect & implement softwarearchitect & implement software–– Example: of a master craftsman teaching an Example: of a master craftsman teaching an

apprentice a trade. apprentice a trade. •• Sample ArcGIS Design patterns:Sample ArcGIS Design patterns:

–– Connecting to different data sourcesConnecting to different data sources–– Moving objects on the displayMoving objects on the display–– Adding Vector dataAdding Vector data

Page 24: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Patterns and Practices:Patterns and Practices:Types of GuidanceTypes of Guidance

•• Guides Guides –– Written guidance covering topics such asWritten guidance covering topics such as–– Patterns, Architecture, Integration, Performance, etc.Patterns, Architecture, Integration, Performance, etc.

•• Reference ImplementationsReference Implementations–– CompilableCompilable and Executable sample applications that and Executable sample applications that

demonstrate patterns, practices and guidance in demonstrate patterns, practices and guidance in actionaction

•• Application BlocksApplication Blocks–– Reusable source code components that provide Reusable source code components that provide

proven solutions to common development tasksproven solutions to common development tasks

Page 25: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Patterns and PracticesPatterns and Practices

http://edn.esri.com/index.cfm?fa=home.welcome

Page 26: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Sample Best PracticesSample Best Practices

Page 27: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice General:Best Practice General:Start with the RequirementsStart with the Requirements

•• Display Types and ContentDisplay Types and Content–– 2D, 3D, Web Client2D, 3D, Web Client–– Standard, Military, and Custom SymbologyStandard, Military, and Custom Symbology–– Performance and Update RatesPerformance and Update Rates–– Number of Symbols and LabelsNumber of Symbols and Labels

•• Data Sources and StorageData Sources and Storage–– SourceSource

•• Hardware Devices, Hardware Devices, RDBMSRDBMS’’ss, Networked and Streaming , Networked and Streaming Data SourcesData Sources

–– Data TypeData Type•• EGDB, Shapefile, PGDB, etc.EGDB, Shapefile, PGDB, etc.

–– Update FrequencyUpdate Frequency–– Data VolumeData Volume

Page 28: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice General:Best Practice General:Start with the Requirements Start with the Requirements -- Other ConsiderationsOther Considerations

•• DisplayDisplay–– RealReal--timetime–– RefreshRefresh–– Animation and moving objectsAnimation and moving objects–– CachesCaches

•• Editing and User Interaction with Display and Editing and User Interaction with Display and DataData

•• TrackingTracking•• LayersLayers

–– Custom layersCustom layers–– Normal layersNormal layers

Page 29: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:Data Management Data Management

•• Understand Implications of I/O on performanceUnderstand Implications of I/O on performance–– With layers tied to a diskWith layers tied to a disk--based data source, refresh based data source, refresh

commands will encounter I/O slowdowncommands will encounter I/O slowdown–– Optimize performance by batching/grouping I/O operations Optimize performance by batching/grouping I/O operations

where possiblewhere possible•• Understand Queries and CursorsUnderstand Queries and Cursors

–– IFeatureCursorIFeatureCursor’’ss obtained from calls to obtained from calls to IFeatureClassIFeatureClass’’ss Insert, Insert, Search, or Update methodsSearch, or Update methods

–– These differing origins will have different performance These differing origins will have different performance implications implications -- see ArcGIS Documentation for recommended see ArcGIS Documentation for recommended usageusage

–– Query only the data you need to Query only the data you need to -- known tiles if possible, not known tiles if possible, not entire datasetentire dataset

•• Understand the performance of your Data Source Understand the performance of your Data Source –– Performance for data sources variesPerformance for data sources varies–– ArcSDE, Shapefile, PGDB, Networked Data SourcesArcSDE, Shapefile, PGDB, Networked Data Sources

Page 30: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:Understand the Display PipelineUnderstand the Display Pipeline

•• Normal PipelineNormal Pipeline–– Map::RefreshMap::Refresh

•• Layer::DrawLayer::Draw–– Render::DrawRender::Draw

»» Symbol::DrawSymbol::Draw

•• Use Use IActiveView.PartialRefreshIActiveView.PartialRefresh rather than the full rather than the full IActiveView.RefreshIActiveView.Refresh

•• Only Refresh the desired view phase, e.g. Only Refresh the desired view phase, e.g. ActiveView.PartialRefresh(esriViewForegroundActiveView.PartialRefresh(esriViewForeground, layer, , layer, desiredEnvelopedesiredEnvelope))

•• If moving graphics/symbols, refresh only those If moving graphics/symbols, refresh only those graphics that have changedgraphics that have changed

•• If performing custom drawing, only draw those If performing custom drawing, only draw those graphics which are visible and in the current extentgraphics which are visible and in the current extent

•• Dynamic DisplayDynamic Display capabilities if applicablecapabilities if applicable

Page 31: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:Practices for 3DPractices for 3D

•• When Using Elevation Data, ensure that data When Using Elevation Data, ensure that data set is projected, and that X, Y & Z values are set is projected, and that X, Y & Z values are the samethe same

•• Determining how to handle data that lacks an Determining how to handle data that lacks an altitude componentaltitude component–– Extruding, draping, ground clamping, terrain Extruding, draping, ground clamping, terrain

exaggerationexaggeration•• Multiple level of detail modelsMultiple level of detail models•• Using realistic 3D Models useful for some Using realistic 3D Models useful for some

types of data (individual platforms) but not for types of data (individual platforms) but not for all dataall data–– E.g. military tactical symbols that represent 1000s of E.g. military tactical symbols that represent 1000s of

entitiesentities

Page 32: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:Map Configuration ConsiderationsMap Configuration Considerations

•• Number of LayersNumber of Layers•• Scales dependencies forScales dependencies for

–– LayerLayer–– LabelsLabels–– E.g. Not showing street level maps at a global scaleE.g. Not showing street level maps at a global scale

•• Layer OrderLayer Order•• Static versus Dynamic LayersStatic versus Dynamic Layers

Page 33: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:LabelingLabeling

•• Labeling is performanceLabeling is performance--expensiveexpensive•• Drop altogether, if possible for moving/dynamic Drop altogether, if possible for moving/dynamic

datadata•• Minimize the number of labels visible Minimize the number of labels visible

–– Turn off labels when animating/moving (important)Turn off labels when animating/moving (important)–– Turn off when zoomed out beyond a meaningful Turn off when zoomed out beyond a meaningful

extentextent–– Consider using alternate methods to present Consider using alternate methods to present

detailed symbol attributes detailed symbol attributes •• PopPop--up balloons, separate attribute window for selected up balloons, separate attribute window for selected

graphic, or turngraphic, or turn--on labels only for graphics near map center on labels only for graphics near map center

Page 34: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:Methods of Using MOLEMethods of Using MOLE

•• Cached GraphicsCached Graphics–– Lowest level of using MOLELowest level of using MOLE–– Use when the most important Use when the most important

concern is dynamic, highconcern is dynamic, high--speed speed throughput and visual updatesthroughput and visual updates

•• Display ListsDisplay Lists–– Use when lowUse when low--level control is level control is

needed but also need decluttering, needed but also need decluttering, leaderingleadering/stacking, and callbacks/stacking, and callbacks

•• Force Element / Force Element / Tactical Graphic LayersTactical Graphic Layers–– Connect directly to backConnect directly to back--end GISend GIS–– Performance determined by feature Performance determined by feature

class class

Performance &Complexity

Simplicity &Overhead

Page 35: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Best Practice:Best Practice:Data Format ConsiderationsData Format Considerations

Vector FormatsVector Formats•• Extended FormatsExtended Formats

–– OLEDB providerOLEDB provider–– PlugPlug--in data sourcein data source

•• FMEFME–– Data sourcesData sources–– TransformersTransformers

•• ETLETL–– FormatsFormats–– WorkflowWorkflow–– PerformancePerformance

Raster FormatsRaster Formats•• Extend Raster Formats Extend Raster Formats

((Format DLLFormat DLL))•• PyramidsPyramids•• Loading Loading rastersrasters

GeneralGeneral•• Spatial indexingSpatial indexing

Page 36: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Military AnalystMilitary Analyst

Page 37: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Military AnalystMilitary AnalystDesktop CapabilitiesDesktop Capabilities

•• Extension to ArcGISExtension to ArcGIS•• Collection of defenseCollection of defense--related functionalityrelated functionality•• Manage and exploit Military data formats in Manage and exploit Military data formats in

ArcGISArcGIS•• Convert coordinates between DD, DMS, UTM, Convert coordinates between DD, DMS, UTM,

& MGRS& MGRS•• Measure geodetically accurate distancesMeasure geodetically accurate distances•• Analyze terrain data and visualize in 3DAnalyze terrain data and visualize in 3D•• Builds on core ArcGIS capabilitiesBuilds on core ArcGIS capabilities•• Functionality always increasing according to Functionality always increasing according to

the needs of the defense/the needs of the defense/intelintel user communityuser community

Page 38: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Military AnalystMilitary AnalystArcEngine CapabilitiesArcEngine Capabilities

•• Military Analyst Layer ManagementMilitary Analyst Layer Management–– VPFVPF–– RPFRPF–– DTEDDTED

•• Coordinate ConversionCoordinate Conversion•• Geodesics Geodesics

–– RhumbRhumb Line DistancesLine Distances–– GeoEllipseGeoEllipse–– GeoPolygonGeoPolygon–– GeoPolylineGeoPolyline

Page 39: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Military AnalystMilitary AnalystApplication DemoApplication Demo

GeodesyMapControl.exe.lnk

Page 40: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Military Overlay Editor Military Overlay Editor (MOLE)(MOLE)

Page 41: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

About MOLEAbout MOLE

•• MILMIL--STDSTD--2525B war fighting symbology (all 2525B war fighting symbology (all Appendices) in the ArcGIS frameworkAppendices) in the ArcGIS framework

•• Designed to easily create, display, edit and Designed to easily create, display, edit and manage MILmanage MIL--STDSTD--2525B war fighting 2525B war fighting symbology and datasetssymbology and datasets

•• Designed to work withDesigned to work with–– ArcGIS Desktop and ExtensionsArcGIS Desktop and Extensions

•• ArcMap, ArcGlobe, ArcReader, ArcIMS, Tracking Analyst,, ArcMap, ArcGlobe, ArcReader, ArcIMS, Tracking Analyst,, etc.etc.

–– ArcGIS EngineArcGIS Engine–– 2D (ArcMap/MapControl) 2D (ArcMap/MapControl) –– 3D (3D (ArcGlobe/GlobeControlArcGlobe/GlobeControl))

Page 42: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

MOLE TerminologyMOLE Terminology

•• Force Elements Force Elements –– C2 SymbologyC2 SymbologyUnits, Equipment, and InstallationsUnits, Equipment, and Installations

•• Tactical Graphics Tactical Graphics –– C2 SymbologyC2 SymbologyMilitary OperationsMilitary Operations

Page 43: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

MOLE in the ArcGIS 9 FrameworkMOLE in the ArcGIS 9 Framework

RDBMS

ArcGIS Clients

ArcGIS Desktop

Application / Data Servers

EXTENSIONS

Components

ArcReaderArcReader ArcViewArcView

ArcInfoArcInfoCustom

applicationCustom

applicationArcEditorArcEditor

ArcGIS ServerArcGIS Server ArcIMSArcIMS

EXTENSIONS

ArcPadArcPad Webbrowser

Webbrowser

ArcGIS Engine / Server

ArcObjectsArcObjects

ExtensionsExtensions

MOLEMOLE

ArcSDEArcSDE

Network

= MOLE as ArcGIS Client= MOLE with Application

Data Servers

Page 44: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

MOLE Application DemoMOLE Application Demo

Page 45: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

MOLE Demo MOLE Demo ArcGIS Server ApplicationArcGIS Server Application

•• Client defines geometry and attributes, sends information to serClient defines geometry and attributes, sends information to serverver•• Symbology generation, analysis performed on server, sent to clieSymbology generation, analysis performed on server, sent to clientsnts•• Client displays common operational picture (COP) and makes and sClient displays common operational picture (COP) and makes and see ee

changeschanges

http://scenario.esri.com/moleeditor/

ClientClient

ServerServer

Data and Application Servers

Data

Page 46: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Sample Reference Sample Reference ApplicationApplication

Page 47: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Sample Reference ApplicationSample Reference ApplicationPurposePurpose

•• DemonstratesDemonstrates–– Using the ArcGIS Engine Controls in conjunction Using the ArcGIS Engine Controls in conjunction

with MOLE Military Symbologywith MOLE Military Symbology–– An ArcEngine solution to a fullyAn ArcEngine solution to a fully--functional GIS functional GIS

application for creating, viewing, and exporting GIS application for creating, viewing, and exporting GIS data and Military Symbologydata and Military Symbology

–– A solution implemented using several development A solution implemented using several development languages/environmentslanguages/environments

–– Typical requirements and design alternativesTypical requirements and design alternatives•• Important Caveat: only represents one possible Important Caveat: only represents one possible

solution for the stated requirements solution for the stated requirements -- not the not the onlyonly solutionsolution

Page 48: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Case Study: Case Study: ArcGIS Military Symbology ApplicationArcGIS Military Symbology Application

•• General ArcGIS Engine UsageGeneral ArcGIS Engine Usage–– Using the ArcGIS Engine Controls.Using the ArcGIS Engine Controls.–– ProgramaticallyProgramatically adding commands and tools to the adding commands and tools to the

ToolbarControl and TOCControl .ToolbarControl and TOCControl .–– Adding layers to the map and displaying and modifying their Adding layers to the map and displaying and modifying their

properties.properties.–– Subscribing to ArcGIS Events.Subscribing to ArcGIS Events.

•• MOLE UsageMOLE Usage–– Using MOLE to generate a list of valid Symbol ID Codes Using MOLE to generate a list of valid Symbol ID Codes

(SICs).(SICs).–– Creating, displaying, and modifying any Force Element and Creating, displaying, and modifying any Force Element and

Tactical Graphic symbol.Tactical Graphic symbol.–– Using MOLE symbols as Using MOLE symbols as ICachedGraphicsICachedGraphics to obtain maximum to obtain maximum

performance.performance.–– Exporting MOLE symbols to image files.Exporting MOLE symbols to image files.–– Dynamically moving Force Element symbols on the mapDynamically moving Force Element symbols on the map

Page 49: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

ArcGIS Military Symbology Application:ArcGIS Military Symbology Application:ArchitectureArchitecture

AppSingleton

MoleUtilities

MainApplication

1

1

C2DataVisualizer

11

+MapControl+ToolbarControl+TocControl

ControlsHelper

1

1

11

Utility Classes

DrawUtilitiesGeneralUtilitiesHighResTimer

LoggerMapUtilitiesSicHelperSymbols

TacticalPointsCount

Commands/Tools

AddLayerCommandC2AddUnitTool

C2MultiSelectToolDeleteLayerCommand

LayerPropertiesCommandZoomToLayerCommand

Forms

AddUnitsFormMultiGraphicSelectForm

LayerPropertiesFormMoleUnitSettingsForm

MoveUnitsFormTacticalLayerPropertiesForm

Page 50: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Sample Reference Sample Reference Application DemoApplication Demo

Page 51: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

ConclusionConclusion

Page 52: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

ConclusionConclusion

•• Many different target and integration options Many different target and integration options available to defense developers and system available to defense developers and system integrators integrators

•• Some methods are better than others Some methods are better than others •• Patterns and Practices provide a road map toPatterns and Practices provide a road map to

–– Aid in climbing the learning curveAid in climbing the learning curve–– Exploring existing solutionsExploring existing solutions–– Navigating options and alternativesNavigating options and alternatives–– Choosing proven best Choosing proven best pathpath((ss))

Page 53: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Additional ResourcesAdditional Resources

•• ESRI Defense SolutionsESRI Defense Solutions–– http://http://www.esri.comwww.esri.com/defense/defense

•• ESRI Developer NetworkESRI Developer Network–– http://edn.esri.com/http://edn.esri.com/

•• EDN Code Exchange (Samples and Scripts) EDN Code Exchange (Samples and Scripts) –– http://edn.esri.com/index.cfm?fa=codeExch.gatewayhttp://edn.esri.com/index.cfm?fa=codeExch.gateway

•• MOLE and Military Analyst ForumsMOLE and Military Analyst Forums–– http://forums.esri.com/forums.asp?c=5http://forums.esri.com/forums.asp?c=5

Page 54: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Questions???Questions???

???? ????

Page 55: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Session Evaluations ReminderSession Evaluations Reminder

Session Attendees:Session Attendees:Please turn in your session evaluations.Please turn in your session evaluations.

. . . Thank you. . . Thank you

Page 56: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Backup SlidesBackup Slides

Page 57: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

MOLE Approaches

• There are essentially three levels at which developers can incorporate MOLE into applications:

• Cached Graphics

• Display Lists

• Force Element Layers

Performance &Complexity

Simplicity &Overhead

Page 58: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Cached Graphics• Approach

• Use a MOLE FEGraphicFactory’s ‘Make’ method to create force elements (FEGraphic’s / ICachedGraphic’s).• Hook into the IActiveViewEvents AfterDraw event and manually render the created ICachedGraphic’s (ICachedGraphic.Draw)

• Benefits• Optimum speed

• Drawbacks• Requires most low-level ArcObjects programming of all approaches• Only works in 2D (ArcMap)

• When To Use• When the most important concern is dynamic, high-speed throughput and visual updates

Page 59: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Display Lists• Approach

• Create force elements (FEGraphic’s / ICachedGraphic’s)• Add them to a MOLE ForceElementDisplayList, • Hook into the IActiveViewEvents AfterDraw event and render the created ForceElementDisplayList with a single call

• Benefits• Allows for some advanced MOLE features such as decluttering, leadering, stacking, and Before/AfterDraw Callbacks

• Drawbacks• Requires some low-level ArcObjects• Only works in 2D (ArcMap)

• When To Use• When some performance can be sacrificed for more features

Page 60: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Force Element Layers

• Approach• Load an IFeatureLayer containing MOLE data• Attach it to a MOLE ForceElementLayer (and MOLE renderer)• Add the ForceElementLayer to the map/globe

• Benefits• Requires least developer effort• Currently the only approach that works in 3D• Only practical approach to use MOLE if data is provided by/connected to a back-end GIS solution (ArcSDE, shapefiles, PGDB, etc.)

• Drawbacks• Less atomistic control over the appearance of individual FEGraphics• Performance constrained by performance of feature class provider (ArcSDE, shapefiles, PGDB, etc.)

• When To Use• When low-level control over individual graphic appearance is not critical, or when in 3D

Page 61: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Code SampleCode SampleCreate a MOLE Force ElementCreate a MOLE Force Element//Create a MOLE Symbol as a Cached Graphicpublic ICachedGraphic CreateMoleUnit(string SymbolIdCode, IPropertySet pSet, IPoint pPoint, double Size){

pCachedGraphic = null;IFEGraphic pForceElementGraphic = UnitGraphicFactory.Make(SymbolIdCode);

pForceElementGraphic.Style = StyleForCreate;IForceElement pForceElement = new ForceElementClass();

pForceElement.PropertySet = pSet;pForceElement.Shape = pPoint;pForceElement.MessageString = SymbolIdCode;

pForceElementGraphic.ForceElement = pForceElement;

ICachedGraphic pCachedGraphic = pForceElementGraphic as ICachedGraphic;IGeometry pGeo = pPoint as IGeometry;pCachedGraphic.Size = Size;pCachedGraphic.Geometry = pGeo;pCachedGraphic.IsLocked = false;

return pCachedGraphic;}

Page 62: Best Practices and Design Patterns for Defense …...Patterns and Practices Motivation • Patterns facilitate reuse of successful software architectures, designs, and proven solutions•

Overview of ADF ArchitectureOverview of ADF Architecture

ArcGIS Server Context

Web Service

Tablet PC

ADF Applications

PDA

Cell PhoneDesktop

Rich-client applicationsLeverage web services Easy to build and deploy

Smart ClientsSmart Clients

ArcGIS Engine-baseddeployment

Thick ClientsThick Clients

Web ApplicationsBrowser Applets

Thin ClientsThin Clients