The Kentucky Transportation Cabinet’s use of Server Object Extensions (SOEs) Scott Dickison, GISP.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

CAP Support in Esris Open Source Geoportal Server WMO Information System (WIS) CAP Implementation Workshop Geneva, 6-7 April 2011 Clive Reece
Clark County & the Web Application Development Framework.
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Web GIS Oregon Explorer Marc G Rempel Oregon State University The Valley Library Oregon Explorer
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
SOAP.
SE 370: Programming Web Services Week 4: SOAP & NetBeans Copyright © Steven W. Johnson February 1, 2013.
2013 Texas Ad Astra Summit Monday, July 22 nd What’s New in 7.5 for Event Scheduling Presented by: Kelly Hollowell, Manager of Education, Ad Astra.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
Intermediate Visual Basic CISP 371 CRC Prof. Chapman.
ESRI Geoportal Extension 10 November 2010 Out-of-the-box capabilities and additional options.
Languages for Dynamic Web Documents
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET
Kentucky Transportation Cabinet GIS Branch Kentucky Transportation Cabinet GIS Branch Replacing ArcIMS: KYTC’s New Interactive.
Building Server Behaviors Tom Muck co-author Building Dreamweaver 4 and Dreamweaver UltraDev 4 Extensions.
UNIT-V The MVC architecture and Struts Framework.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
ArcGIS Workflow Manager An Introduction
NextGen Technology upgrade – Synerizip - Sandeep Kamble.
WaveMaker Visual AJAX Studio 4.0 Training Studio Overview.
JavaScript & jQuery the missing manual Chapter 11
4-1 INTERNET DATABASE CONNECTOR Colorado Technical University IT420 Tim Peterson.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
GDT V5 Web Services. GDT V5 Web Services Doug Evans and Detlef Lexut GDT 2008 International User Conference August 10 – 13  Lake Las Vegas, Nevada GDT.
U.S. Environmental Protection Agency WATERS Status Update
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Extending ArcGIS for Server
9. Introduction to ArcObjects Most GIS analysis carried out within a GIS consists of a labor- intensive sequence of steps. Automating a GIS makes it possible.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
1 Data Bound Controls II Chapter Objectives You will be able to Use a Data Source control to get data from a SQL database and make it available.
Web Mapping Seth Peery, Senior GIS Architect
GIS On The Web: An Overview of ArcIMS. *The easy flow of geographic data can offer real-life solutions in many societal sectors, including municipal government,
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
Enabling High-Quality Printing in Web Applications
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Esri UC 2014 | Technical Workshop | Esri Roads and Highways: Integrating and Developing LRS Business Systems Tom Hill.
City of Medford A road construction application. Public Works Department Goal Notify citizens and media of road hazards and impediments. Audience: –TV.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
DAP4 James Gallagher & Ethan Davis OPeNDAP and Unidata.
Optimizer Deployment Centralized Database module on Optimizer hub server Each monitored server has an instance of optimizer installed.
Technical Workshops | Esri International User Conference San Diego, California Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for.
Charles Dunbar, Ben Kallal, Ankit Patel, Peter Purcell, Kody Reynolds.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Supporting High-Quality.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
RESTful Web Services What is RESTful?
Welcome to the Minnesota SharePoint User Group February 13 th, 2013 SharePoint 2013 – Developers Track - Client Side Rendering.
IT533 Lectures ASP.NET AJAX.
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
ECHO Technical Interchange Meeting 2013 Timothy Goff 1 Raytheon EED Program | ECHO Technical Interchange 2013.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Web Services Essentials. What is a web service? web service: software functionality that can be invoked through the internet using common protocols like.
Hydroinformatics Lecture 15: HydroServer and HydroServer Lite The CUAHSI HIS is Supported by NSF Grant# EAR CUAHSI HIS Sharing hydrologic data.
ArcGIS for Server Security: Advanced
ArcGIS Workflow Manager: Advanced Workflows and Concepts
Accessing Spatial Information from MaineDOT
MapServer In its most basic form, MapServer is a CGI program that sits inactive on your Web server. When a request is sent to MapServer, it uses.
Student: Popa Andrei-Sebastian
Chengyu Sun California State University, Los Angeles
Presentation transcript:

The Kentucky Transportation Cabinet’s use of Server Object Extensions (SOEs) Scott Dickison, GISP

This morning’s topics: What is a Server Object Extension (SOE)? How do you… Write a SOE? Use a REST SOE in a .NET application? How is the Transportation Cabinet using SOE’s with ArcGIS Server 10.0?

What on Earth are you talking about?

Spatially Enabled Web Services! SOE’s extend the capabilities of your ArcGIS Server map services beyond just data display and query.

♫♫♪ The Circle of Life Data ♫♫♪ MAP Service/SOE Service Request Application Web Client Serialized Data Custom Class SDE & Other Databases DESERIALIZER

REST Service Request URL http://someserver.somewhere.org/ArcGIS/rest/services/MeasuredRoute/MapServer/exts/KYTCGISREST/GetRouteInfo?X=5164738.4563+&Y=3893182.2452+&SearchRadius=10&f=pjson Programmatically constructed and submitted by the application

Serialized JSON or XML Output

SOE Basics Can be developed for REST or SOAP Access KYTC has chosen to write them as REST services Can be written in .NET or Java Provide access to the full suite of ArcObjects

SOE Basics Need to be deployed to all of a site’s ArcGIS Servers in multi-server configurations This TOTALLY changes at 10.1! Return information is in JSON but can be written to return other data formats. KYTC offers both JSON and XML

Advantages of a SOE Fast! Low server overhead Easily accessible SOE’s live and die with the map service they’re attached to No performance hit for having to spin up an instance of the SOE when a request is made Easily accessible Can be accessed by any client that is able to make the request

When do you need a SOE? ArcGIS Server applications When desired functionality is not available to the Silverlight, JavaScript, or Flex APIs. Traditional .NET applications… When an application needs some spatial functionality but the application itself cannot be written with ArcObjects

When do you need a SOE? Other considerations… Geoprocessing services have a large memory footprint when compared to a SOE – especially for complex tasks If the task is complex and is going to be heavily utilized you’ll want to use a SOE. applications…You have an ArcGIS Server application that needs some ArcObjects functionality not provided by one of the ArcGIS Server API’s

How are SOE’s written?

Development Prerequisites: Use the templates! Knowledge of .NET or Java development Knowledge of ArcObjects Use the templates! ESRI has provided a SOAP and a REST Visual Studio project template to get you started.

Development Building blocks of an SOE Resources Information returned back from the server for use by an operation ESRI says to think of this as a read-only property Operations Something you ask the server to do with a resource Every SOE has at least one resource and one operation even if the resource doesn’t return anything

Development The RestResource class SOE Operations are associated with a RestResource Arguments The SOE’s name Collection? The Resource Handler Capabilities (optional) A way to group subsets of operations Note: Capabilities are called “Allowed Operations” when looking at the Capabilities tab under Service Properties in ArcCatalog.

Development The CreateRestSchema function Returns a RestResource Class This is where you define the SOE’s operations (RestOperation class)

Development The REST Resource Handler Byte Array An array of raw data Returns information from the server back to the SOE for use by an operation For KYTC’s Server Object Extensions we’ve set it up to not return anything DEFINE BYTE ARRAY!

Development The RestOperation Class An individual operation in a SOE Identifies which Operation Handler will be invoked Specifies inputs Specify output types Optionally specify a capability

Development The Rest Operation Handler Byte Array Handles and validates inputs Where you should execute any ArcObjects code (here or in helper methods) Formats output in the specified format

Development Signing the assembly Signing the assembly with a strongly named key will let you place the assembly in the server’s GAC GAC – Global Assembly Cache The server-wide .NET assemblies Cache. Lets you run multiple versions of the same DLL side-by-side.

Development Testing Once deployed an HTML Page is generated for the SOE in the REST services directory of the map service it is attached to GAC – Global Assembly Cache

Using SOE’s in a .NET Application

Using SOE’s in a .NET Application Making the request The WebClient Class… Constructing the URL... The OpenReadCompleted event handler

Using SOE’s in a .NET Application The WebClient Class Provides common methods for sending data to and receiving data from a resource identified by a URI. (MSDN web site) Constructing the URL Programmatically construct the entire call and provide it to the WebClient

Using SOE’s in a .NET Application The OpenReadCompleted event handler Synchronous or Asynchronous

Using SOE’s in a .NET Application Deserializing SOE output Creating a Class to hold the output http://json2csharp.com/ The DataContractJsonSerializer DEFINE SERIALIZE vs. DESERIALIZE

How is KYTC utilizing SOE’s?

KYTC Silverlight Control Searching for a route

KYTC Permitting (KEPT) When a permit location is added, moved, or deleted the corresponding point is acted upon in SDE Generate a list of all roads within a mile of a permit

KYTC Rail Crossing Inventory (RCI) Project Manager’s Toolbox Return detailed route information based on a spatial query Return location information in terms of County, Route, and Mile point. Data synchronization When a rail crossing is updated in the RCI database the corresponding location is moved in SDE Project Manager’s Toolbox A SOE is used to return the boundaries of a project which is, in turn, used to zoom to the project extent.

KYTC GIS Branch Goals Integration with application developers Deploy a spatially enabled application that is a joint effort between the GIS Branch and Application Development by the end of 2012. (DONE!) Deploy a spatially enabled application that is solely developed by Application Development with the GIS Branch only in an advisory role by the end of 2013. Replace existing web services with SOEs ArcGIS server 10.1 no longer supports local connections

Questions?

Contact us: email: KYTCGISTeam@ky.gov Server Object Extension link: http://maps.kytc.ky.gov/ArcGIS/rest/services/MeasuredRoute/MapServer/exts/KYTCGISREST