300 likes | 420 Views
Web Development. Web development never ends: Find out what the stakeholders need (sponsors, users, etc.) Investigate available technology Plan the project Build/update the web site Test functionality in all browsers Release the site Monitor and maintain Go to 1. Technical Issues.
E N D
Web Development • Web development never ends: • Find out what the stakeholders need (sponsors, users, etc.) • Investigate available technology • Plan the project • Build/update the web site • Test functionality in all browsers • Release the site • Monitor and maintain • Go to 1.
Technical Issues • Keeping a web site available • Maintaining a server • Getting “hacked” • Performance problems
Bottom Line • If your web site is not available: • You don’t exist!
What is a web server? • Has a “hard IP”. • An IP address that never changes • Runs “web server” software • Typically IIS or Apache • Typically: • Is in a “rack” in a protected space that is: • Is environmentally controlled (air conditioned) • Has “conditioned” power (a UPS) • Has redundant components
Maintaining a server • You can “rent” space on a server • DropBox offers a “Public” folder • A server costs from $500 to $100,000 • Don’t listen to what the manufacturers tell you what you need! Talk to other developers. • It costs $100 to $200 per month to have someone “host” your server. • In theory, you could have a server at your house but it is not recommended
Software • Keep the server as simple as possible • Complexity = more failures • Limit access • Do required updates • There are web site that will monitor your server and email you if it goes down
Getting Hacked • Common Types: • SQL Injection • “Stealing Bandwidth” • Web Server breach • Uploading viruses • Denial of service errors • These can cause: • 404 Errors (web page unavaialble) • Web pages being replaced • Getting billed $1000s of dollars! • Information being stolen?
SQL Injection • In a query string, enter: • “Query; DELETE FROM ‘<table>’” • Deletes the entire contents of the table • Can also steal info from DB • Easy to protect from: • Check for single quotes and replace them with two single quotes • Don’t allow “delete from” in a query • Don’t allow sensitive information in your database
Stealing Bandwidth • Someone breaks into your server and puts a bunch of data there. Then, they make you their download site • Causes a massive spike in bandwidth which you have to pay for! • Preventing: • Don’t have FTP sites • Keep web software up to date • Make sure your ISP monitors for them
Web Server Breach • An HTML steam that breaks your web server and then takes over your server. • Used to steal band width and corrupt your server’s contents • Preventing: • These are rare and can only be prevented by the web server software provider • Keep web server software up to date
Uploading Viruses • User’s upload a file that than runs a program or “sleeps” until users download it to their computer • Allows others to get you to distributed viruses! • Don’t allow “scripts” to be uploaded. This includes: • “xls”, “doc”, “ppt” files!
Denial of Server • A web service is written that calls your web site over and over again to “bring it down”. • IIS can crash with these • Preventing: • Don’t attract attention • If you do, get a lot of servers • Block abusive users • Education and only allow reasonable web service calls
Reality • Getting hacked today is rare • Twice in last 8 years (never in last 6) • Keep the OS and web software up to date • Don’t let a lot of folks edit the contents of your server • Keep an eye on it • Other problems (like performance) will be bigger.
GIS Web Sites • GIS web sites “go bad” because of: • Poor user design • Poor performance • New issues: • Scripting performance • Database performance • Geospatial data access
Scripting Performance • Use a “modern” language • Make sure there is minimal recursion • Functions calling functions • Scripts calling scripts • Including files that include the same files • Find the “bottlenecks” and fix them • Don’t use ArcGIS (you’re not allowed to in a server environment anyway).
Database Performance • Don’t use MS-Access or MySQL • Use indexes (search trees) • Minimize string searches • Index if needed • Minimize hierarchical queries • Do performance analysis on key queries and add redundant data if needed
Geospatial Issues • Pixels .vs geographic systems • Cartesian vs. tiles • Tiled data • Transfer speeds
180 -180 90 Height in Pixels -90 Width in Pixels
10,000,000 meters UTM, Zone 10 6,600,000 meters
Pixels Geospatial Coordinates 0,0 Easting, Northing Positive X Positive X Positive Y Negative Y
Raster Pyramids • Problem: • Rasters can be huge! • The Internet is slow • Analysis: • Users can only view about 1000 x 1000 pixels at time • Options: • Large area at low resolution • Small area at high resolution • Solution: • Create a “pyramid” of tiles and only transfer the tiles that are needed
0,0 Zoom Level 0 256,256
Columns 0 1 0,0 0 Zoom Level 1 Rows 1 512,512
Columns 0 1 0,0 0 Zoom Level 1 Rows 1 512,512
Columns 1 0 0,0 0 1 Zoom Level 1 Rows 512,512
Vector Pyramids • Vector data is getting later • Millions of points • Complex, global polygons • Vector Pyramids are coming • Each tile contains GeoJSON data for that tile