Service Oriented Architecture: Web GIS Services Lisa Hallberg, Web Developer Kansas Data Access & Support Center (DASC) Lawrence, KS
Service Oriented Architecture What is Service Oriented Architecture? SOA is a development and architectural model that has grown out of the need to share data across many different applications and operating systems. In the business world, legacy software applications were often stand-alone, and not intrinsically capable of sharing data with other applications. The SOA model enforces the idea of building services that are independent of platform, operating system, database or application. Such services expose data and functionality through standards-based interfaces.
SOA Standards Examples TCP/IP standard protocols, including HTTP and HTTPS TCP/IP protocols include requests and responses (success or failure), but do not require a persistent connection ( stateless ) XML data format standard XML = Extensible Markup Language JSON data format standard used with Ajax in Web pages JSON = JavaScript Simple Object Notation Ajax = Asynchronous JavaScript SOAP data transfer standard using XML From the W3C spec: SOAP is fundamentally a stateless, oneway message exchange paradigm REST URL-based data transfer standard REST = Representational State Transfer Other application programming interfaces (APIs) APIs are methods for interfacing with published services. Examples include SOAP and REST. APIs can also be built for JavaScript libraries for use with Web clients.
Some (mostly GIS) Examples JavaScript API examples: Google Maps http://code.google.com/apis/maps/ OpenLayers http://trac.openlayers.org/wiki/documentation SOAP example: http://www.arcwebservices.com/services/v2006_1/ AddressFinder?wsdl Note that SOAP is self-documenting REST example: http://www.youtube.com/dev_rest
SOA in a GIS Context Serve GIS layers in a stateless, platformindependent interface. Provide clear documentation for how to access and use the services. Provide a variety of service options. Leverage the service-oriented model as a means to collect statewide data: Online digitizing tools: web-interface and REST SOAP-based batch processing Data uploads
Overhauling KANSASGIS.ORG DASC s Web site www.kansasgis.org has been developed over the past three years as a geoportal for sharing DASC s GIS data. Services include: Catalog of GIS data Data for download ArcSDE services Entries categorized ArcIMS web applications Build your own map application Custom web sites for various agencies Data sharing services Forms for uploading and documenting data
The Web GIS Context: The Old Way 2008 MidAmerica GIS Symposium 2. URL request received by the web server (Apache). 3. Server-side code (ColdFusion) interprets the request, sending it to an ArcIMS service to create the map image on the fly. 1. Use the browser to request GIS map data. The The Internet 4. The server sends the custom web page and map image back to the requestor. 5. The web browser receives the content and interprets the content for display. Every change to the map (pan, zoom, change layers) requires all 5 steps to be repeated. User interface is not intuitive. Example: http://maps.kansasgis.org/mapmaker/main.cfm
KANSASGIS.ORG in an SOA context The future vision of our geoportal site will include: Map caches as independent, customizable services Data catalog searchable by format as well as category New technologies for sharing GIS-related topics Web 2.0 concepts such as blogs, RSS feeds, Wikipediastyle documentation Self-documenting services Custom web development using GoogleMaps-style (map caches + Ajax/DHTML) interfaces Intuitive user interface Very fast response to tabular/database data through asynchronous calls to ArcSDE/Oracle
The Kansas Recreation Finder example Current web site is an ArcIMS application utilizing inline frames to display the map and tabular data: http://maps.kansasgis.org/recfinder New version of the site uses a map cache and JavaScript / Ajax interface to display map and tabular data: http://geoportal.kgs.ku.edu/navdatdb/ kdwpgoogle_dev7/public/
Current Examples REST-based wrapper to ESRI s ArcWeb Services: http://www.kansasgis.org/rest/geocode.cfm REST-based wrapper for KBI mapping service: http://www.kansasgis.org/rest/index.cfm SOAP service for uploading KBI point data (as lat-long): http://www.kansasgis.org/soap/kbi.cfc?wsdl http://www.kansasgis.org/soap/test.cfm REST interface for creating ArcIMS images: http://www.kansasgis.org/mapserver/
Future Development Possibilities OpenLayers digitizing example: http://www.openlayers.org/dev/examples/editingtool bar.html ArcGIS Server 9.3 JavaScript API examples http://giselle.kgs.ku.edu:8399/arcgis/rest/services http://neutrino.kgs.ku.edu/restapi/qid2.cfm http://neutrino.kgs.ku.edu/restapi/qid3.cfm
Questions?