TerraServer-USA A Geo-Spatial Raster Store Built on SQL Server Web Services Bay Area Research Center Tom Barclay & Jim Gray What is TerraServer? A remote sensing image store Images are “shredded” into small, uniform sized tiles Multiple input images are mosaic’d into a single “scene” An HTML based web application Navigate by point-n-click, gazetteer or coordinates Pan-n-zoom by clicking on simple navigation buttons (No fancy java, activex, flash controls) An XML based Web Service Meta-data and tiles accessible via W3C web service API An OpenGIS compliant Web Map Server Tiles merged into single “map” image Re-projection from UTM to “geographic” supported TerraServer is designed to be used on the web. It doesn’t have to be, but every design choice is based on how browsers or the web works. TerraServer History MS Research project commissioned by MS SQL Server Team (April 1996) Goal: Test & Demo scalability of SQL 7.0 Image Server chosen as test/demo vehicle Lot of cheap bytes, no translation, interesting Partners between 1996 and 2004: UCSB, USGS, SPIN-2, DEC, Compaq, HP, ADIC, Veritas, Legato, Encarta, Home Advisor, MapPoint, .NET Framework TerraServer Today: 40k – 80k visitors per day, 1 to 1.5 million page views, 5-8 million “tiles” per day 3.4 TB of compressed imagery [and growing] Programmable Web Service and OpenGIS Web Map Server used by USDA, EPA, USGS (National Map) and others Application Goals 4 BIG — 1 TB of data including catalog, temporary space, etc. PUBLIC — available on the world wide web INTERESTING — to a wide audience ACCESSIBLE — using standard browsers (IE, Netscape) REAL — a LOB application (users can buy imagery) FREE — cannot require NDA or money to a user to access FAST — usable on low-speed (56kbps) and high speeds(T-1+) EASY — we do not want a large group to develop, deploy, or maintain the application Available – Always, 24x7x52 99.99% of the time Programmable – .NET applications can integrate TerraServer data into their apps http://terraserver-usa.com Image Coverage Urban Area Cities Seattle, Portland, Stockton, Modesto, Fresno, Sacramento, Chicago, Orlando, Atlanta, Amarillo, Houston, Lubbock, Springfield, Birmingham, Dallas, Albuquerque, Oklahoma City, El Paso, Lincoln, Lexington, Tampa, Washington DC, Mobile Ft Wayne, Colorado Springs, Baton Rouge, … 100% U.S., Topo Maps (light green) 2m to 1024m resolution 97% 48 Conterminous States, (dark green) Ortho Imagery, 1m to 1024m resolution USGS Image Data Digital OrthoQuads 18 TB, 305,000 files uncompressed Digitized aerial imagery 97% coverage conterminous US 1 meter resolution < 15 years old Urban Area 1 foot resolution Natural Color 133 major U.S. cities 37 (3.4 TB) received as of May 2004 2001 or later Produced by NIMA for Homeland Security Digital Raster Graphics 1 TB compressed TIFF, 65,000 files Scanned topo maps 100% U.S. coverage 1:24,000, 1:100,000 and 1:250,000 scale maps Maps vary in age New “Urban Area” Data Microsoft Campus at 4 meter resolution Ball field at .25 meter resolution Redwest Campus What is a Web Service? Open Internet Protocols Web Service A programmable application component accessible via standard Web protocols Provide a Directory of Services on the Internet You can ask a site for a description of the Web Services it offers Web Services are defined in terms of the formats and ordering of messages Web Service consumers can send and receive messages using XML All these capabilities are built using open Internet protocols UDDI Universal Description, Design, and Integration SOAP Discovery SOAP Contract Language SOAP XML & HTTP TerraServer Web Service “TerraService” Motivation: Interface for remote applications (direct access to our data vs. our UI) Access to meta-data instead of imagery (tabular data vs. blobs) Enables “Web-GIS” applications on-top of TerraServer database Requirements: Re-use code developed for Web Map Servers No changes to existing database schema No additional development resources No additional hardware resources Web Service Benefits W3C Standard Supported by many vendors Inter-operable between different hardware and software architectures Strong Tool Support on Windows (ASP.NET) Programming against a web service feels like programming against a local class – SOAP, XML document handling automatically performed by .NET runtime Implementing a web service IS exactly like implementing a local, reusable class .NET TerraService Architecture Standard Browsers Map UI Web Forms Map Server Http Handler Smart Clients Windows Forms .NET Framework http://terraservice.net Existing Database TerraServer Web Service 750+ m Rows SQL 2000 ADO.NET Web Server 3.6 TB Db OLEDB Web Service Methods Place Search GetPlaceFacts GetPlaceList GetPlaceListInRect CountPlacesInRect Projection ConvertLonLatPtToUtmPt ConvertUtmPtToLonLatPt ConvertLonLatTo NearestPlace GetTheme GetLatLonMetrics Tile GetAreaFromPt GetAreaFromRect GetAreaFromTileId GetTileMetaFromLonLatPt GetTileMetaFromTileId GetTile (Image) GetLandmarkTypes CountOfLandmarkPointsByRect GetLandmarkPointsByRect CountOfLandmarkShapesByRect GetLandmarkShapesByRect Landmark http://terraservice.net Production Application TerraServer Web Services Steve Ekblad Data Gateway Functional Overview ITC - Fort Collins, Colorado NCGC - Fort Worth, Texas Customer Orders Data Terra Server Navigation Service Soil Data Viewer XML XML Billing Services Rimage CD Service XML ASP Catalog Service FTP Services Ship Service <<Requests Products>> Send order info validate (dtd) Insert into SQL @@Identity / GUID to client return est time raise OrderMgr.event Order Placer Package Service Product Catalog Updates Order Database Called by anyone rasies to stats svc' XML Request for data Logger Selects from Listen for OrderPlacer Raised Event Select sequenced Item Output XML rasie event : stats.delivery start Geospatial Data Data Services B u f f e r A r e a W i t h i n F i e l d s Item Broker 1 0 5 A 1 0 B 9 9 A 6 A 2 7 . 5 2 1 . 7 1 1 1 3 9 C 1 2 1 6 1 7 1 4 1 6 A 1 3 A 1 9 2 2 0 . 9 1 8 2 7 . 3 2 0 6 . 9 2 . 9 2 4 1 5 . 9 2 9 2 2 A 2 8 A 3 9 . 3 2 8 1 1 . 5 2 7 2 6 4 . 6 3 2 3 3 8 . 9 3 1 3 1 A 1 . 6 3 0 A 1 1 . 3 4 . 8 2 5 3 0 5 . 3 2 5 A 1 2 . 0 2 1 Acknowledges item ready for delivery N 2 0 0 0 P i p e l i n e s 9 7 B u f f e r A r e a W i t h i n F i e l d s 5 A 6 A 1 0 B 1 8 2 0 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 0 A 3 1 0 2 0 0 0 3 1 A 4 0 0 0 F e e t 3 2 F i e l d s W i t h i n B u f f e r L a n d u n i t s U S D A 1 : 1 5 8 4 0 N R C S Soil Viewer Uses TerraService Order Process Lighthouse Select Identify your shipping returns formats products information confirmation Locate data area Custom End Product WebInterpretation XML Soil Soil Report Data Viewer Map 2002 InfoWorld Top 100! USDA NRCS Easements app rated #56 out of 100 Top 100 companies share a dedication to innovative IT solutions http://www.infoworld.com/features/fe2002i w100.html TerraService Summary Launched in October 2000 with .NET Beta 1 Daily usage has grown to 500k – 1.2m web method calls per day Wide range of new applications Average WebService Calls 800,000 700,000 709,183 600,000 500,000 400,000 300,000 “Web GIS” applications like USDA NRCS, EPA215,795 200,000 Homeland Security 100,000 applications (USCG inland waterway 36,840 6,436 0 tracking system) 2001 2002 2003 2004 Recreational applications – hunting, kayaking, golf, etc. Real estate, insurance, engineering and others None of the new applications required our involvement!