The Practical Aspects of Web GIS
      using ArcGIS Server
          David Crosby – Esri
           Jeff Smith – Esri
          Garima Vyas - Esri
Goals


•   Esri product history and history of web GIS
•   Esri model for GIS on the web
•   What are web services?
•   REST and SOAP
•   Esri APIs
•   Samples and Demonstration
Web GIS – Principles and Applications


  •   Esri Press book by Pinde
      Fu and Jiulin Sun
  •   Published November 2010
  •   Available at Amazon.com
Esri Web Product History


  •   ArcView IMS                      Late
  •   MapObjects IMS                  1990’s
  •   ArcIMS – early 2000 (SDE and Shapefiles)
      -   The START of Esri web collaboration with IMS services
  •   ArcGIS Server – around 2005
  •   Grown parallel to technology
  •   ArcIMS Used ActiveX, Cold Fusion, servlets
  •   ArcGIS Server takes advantage of SOAP, REST
Web GIS


 •   Historically, GIS was mainframes, then servers and
     desktops – this was expensive!
 •   The web is an ideal platform for GIS



 •   The web allows for collaboration
     -   Data, maps, models, computing power!
Mashups


 •   Discover and search online
 •   Mix content from different sources – through
     SERVICES!
 •   Not available? Make your own content and add to
     others to create value-added applications




 •   Most important thing is make data available for
     others
1. Web Services – the Esri Approach




     Source: Web Applications, Principles and Applications, Esri Press 2010
What are web services?


ď‚§   A method of communication between two electronic devices
    exposed over the Internet
ď‚§   Clients consume remote objects and functionality
ď‚§   Examples:
    -   Data Providers: Yellow pages, search engine
    -   Service Providers: Credit card authentication
    -   GIS: map, locator, geodata, feature…services
How do web services work?


  ď‚§   Two primary architectures: SOAP and REST
  ď‚§   Requests and responses are made via HTTP protocol
  ď‚§   Example of a typical request/response



                         HTTP Request
      Web Service
                                          Web Service
        Client
                         HTTP
                         Response
What is SOAP?

ď‚§   Simple Object Access Protocol
ď‚§   XML-based protocol for accessing a web service
ď‚§   Language and platform independent
ď‚§   Messages are negotiated and transmitted via HTTP
ď‚§   Used in Web ADF in Server Manager web applications
Sample SOAP Message


  HTTP Protocol
 SOAP Document                        POST /InStock HTTP/1.1
                                      Host: www.example.org
 HEADER (Optional)                    Content-Type: application/soap+xml; charset=utf-8
Delivery Info.                        Content-Length: nnn

                                      <?xml version="1.0"?>
                                      <soap:Envelope
    BODY                              xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
                                      soap:encodingStyle="http://www.w3.org/2001/12/soap-
 Method Parameters
                                      encoding">

                                      <soap:Body xmlns:m="http://www.example.org/stock">
                                           <m:GetStockPrice>
                                           <m:StockName>IBM</m:StockName>
                                           </m:GetStockPrice>
                                      </soap:Body>
                                      </soap:Envelope>


http://sampleserver1.arcgisonline.com/ArcGIS/services?wsdl
What is REST?


  ď‚§   REpresentational State Transfer
  ď‚§   Not a language, rather a design pattern
  ď‚§   Services are exposed as resources
  ď‚§   Resources are available on the web over HTTP
  ď‚§   Client addresses resources via a URL
REST principles


  ď‚§   Addressable resources are referenced via a URL
      (usually referred to as the noun)
  ď‚§   Representations of these resources are returned in
      various formats, e.g. json, html, xml, etc.
  ď‚§   Resources have operations such as PUT, GET, POST,
      and DELETE (usually referred to as verbs)
ArcGIS Server REST API


  ď‚§   Web interface to ArcGIS Server services
  ď‚§   Resources and operations exposed via URLs
  ď‚§   Server catalog is a well-known endpoint
  ď‚§   A simple view of your ArcGIS Server
          - .NET = http://<host>/arcgis/rest/services
          - Java = http://<host>:8399/arcgis/rest/services
ArcGIS Server REST API example

•   Examples

    http://sampleserver1.arcgisonline.com/ArcGIS/rest/services


    http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/
    ESRI_StatesCitiesRivers_USA/MapServer/export?bbox=-125,6.9,-
    66.1,66.8
SOAP and REST Requests

 SOAP Request:
   <?xml version="1.0"?>
   <soap:Envelope
     xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
     soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
   <soap:body pb="http://www.acme.com/phonebook">
   <pb:GetUserDetails>
   <pb:UserID>12345</pb:UserID>
   </pb:GetUserDetails>
   </soap:Body>
   </soap:Envelope>


 REST Request:
   http://www.acme.com/phonebook/UserDetails/12345
SOAP vs. REST?


 ď‚§   REST is lightweight whereas SOAP has more XML
     markup
 ď‚§   REST potentially easier to implement
 ď‚§   REST is generally more agile with development
 ď‚§   REST does not require toolkits to build
 ď‚§   SOAP adheres to rigid type checking


 ď‚§   *Ultimately, they are both web services and that is
     what counts!
ArcGIS APIs
•   Web APIs
    -   ArcGIS API for JavaScript
    -   ArcGIS API for Flex
    -   ArcGIS API for Silverlight
•   Device APIs
    -   ArcGIS Mobile SDK – Windows Mobile Phones and
        Pocket PCs.
    -   ArcGIS API for iOS
    -   ArcGIS API for Windows Phone 7 (newer technology)
    -   ArcGIS API for Android
Web Application Examples

 •   ArcGIS Javascript API - Summit Map
     (2009 ESRI Mashup Challenge Winner)

 •   ArcGIS Flex API - DTSAgile Exec Mashup
     (2010 ESRI Mashup Challenge winner)

 •   ArcGIS Silverlight API - Silverlight Showcase
Web Application Demo
   ArcGIS Viewer for Flex
Thank you!
    Questions?
Esri Web Applications February11 2011

Esri Web Applications February11 2011

  • 1.
    The Practical Aspectsof Web GIS using ArcGIS Server David Crosby – Esri Jeff Smith – Esri Garima Vyas - Esri
  • 2.
    Goals • Esri product history and history of web GIS • Esri model for GIS on the web • What are web services? • REST and SOAP • Esri APIs • Samples and Demonstration
  • 3.
    Web GIS –Principles and Applications • Esri Press book by Pinde Fu and Jiulin Sun • Published November 2010 • Available at Amazon.com
  • 4.
    Esri Web ProductHistory • ArcView IMS Late • MapObjects IMS 1990’s • ArcIMS – early 2000 (SDE and Shapefiles) - The START of Esri web collaboration with IMS services • ArcGIS Server – around 2005 • Grown parallel to technology • ArcIMS Used ActiveX, Cold Fusion, servlets • ArcGIS Server takes advantage of SOAP, REST
  • 5.
    Web GIS • Historically, GIS was mainframes, then servers and desktops – this was expensive! • The web is an ideal platform for GIS • The web allows for collaboration - Data, maps, models, computing power!
  • 6.
    Mashups • Discover and search online • Mix content from different sources – through SERVICES! • Not available? Make your own content and add to others to create value-added applications • Most important thing is make data available for others
  • 7.
    1. Web Services– the Esri Approach Source: Web Applications, Principles and Applications, Esri Press 2010
  • 8.
    What are webservices?  A method of communication between two electronic devices exposed over the Internet  Clients consume remote objects and functionality  Examples: - Data Providers: Yellow pages, search engine - Service Providers: Credit card authentication - GIS: map, locator, geodata, feature…services
  • 9.
    How do webservices work? ď‚§ Two primary architectures: SOAP and REST ď‚§ Requests and responses are made via HTTP protocol ď‚§ Example of a typical request/response HTTP Request Web Service Web Service Client HTTP Response
  • 10.
    What is SOAP? ď‚§ Simple Object Access Protocol ď‚§ XML-based protocol for accessing a web service ď‚§ Language and platform independent ď‚§ Messages are negotiated and transmitted via HTTP ď‚§ Used in Web ADF in Server Manager web applications
  • 11.
    Sample SOAP Message HTTP Protocol SOAP Document POST /InStock HTTP/1.1 Host: www.example.org HEADER (Optional) Content-Type: application/soap+xml; charset=utf-8 Delivery Info. Content-Length: nnn <?xml version="1.0"?> <soap:Envelope BODY xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap- Method Parameters encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope> http://sampleserver1.arcgisonline.com/ArcGIS/services?wsdl
  • 12.
    What is REST? ď‚§ REpresentational State Transfer ď‚§ Not a language, rather a design pattern ď‚§ Services are exposed as resources ď‚§ Resources are available on the web over HTTP ď‚§ Client addresses resources via a URL
  • 13.
    REST principles ď‚§ Addressable resources are referenced via a URL (usually referred to as the noun) ď‚§ Representations of these resources are returned in various formats, e.g. json, html, xml, etc. ď‚§ Resources have operations such as PUT, GET, POST, and DELETE (usually referred to as verbs)
  • 14.
    ArcGIS Server RESTAPI ď‚§ Web interface to ArcGIS Server services ď‚§ Resources and operations exposed via URLs ď‚§ Server catalog is a well-known endpoint ď‚§ A simple view of your ArcGIS Server - .NET = http://<host>/arcgis/rest/services - Java = http://<host>:8399/arcgis/rest/services
  • 15.
    ArcGIS Server RESTAPI example • Examples http://sampleserver1.arcgisonline.com/ArcGIS/rest/services http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ ESRI_StatesCitiesRivers_USA/MapServer/export?bbox=-125,6.9,- 66.1,66.8
  • 16.
    SOAP and RESTRequests SOAP Request: <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body pb="http://www.acme.com/phonebook"> <pb:GetUserDetails> <pb:UserID>12345</pb:UserID> </pb:GetUserDetails> </soap:Body> </soap:Envelope> REST Request: http://www.acme.com/phonebook/UserDetails/12345
  • 17.
    SOAP vs. REST? ď‚§ REST is lightweight whereas SOAP has more XML markup ď‚§ REST potentially easier to implement ď‚§ REST is generally more agile with development ď‚§ REST does not require toolkits to build ď‚§ SOAP adheres to rigid type checking ď‚§ *Ultimately, they are both web services and that is what counts!
  • 18.
    ArcGIS APIs • Web APIs - ArcGIS API for JavaScript - ArcGIS API for Flex - ArcGIS API for Silverlight • Device APIs - ArcGIS Mobile SDK – Windows Mobile Phones and Pocket PCs. - ArcGIS API for iOS - ArcGIS API for Windows Phone 7 (newer technology) - ArcGIS API for Android
  • 19.
    Web Application Examples • ArcGIS Javascript API - Summit Map (2009 ESRI Mashup Challenge Winner) • ArcGIS Flex API - DTSAgile Exec Mashup (2010 ESRI Mashup Challenge winner) • ArcGIS Silverlight API - Silverlight Showcase
  • 20.
    Web Application Demo ArcGIS Viewer for Flex
  • 21.
    Thank you! Questions?