1 / 29

Web Development

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.

cfelton
Download Presentation

Web Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.

  2. Technical Issues • Keeping a web site available • Maintaining a server • Getting “hacked” • Performance problems

  3. Bottom Line • If your web site is not available: • You don’t exist!

  4. 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

  5. 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

  6. 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

  7. 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?

  8. 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

  9. 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

  10. 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

  11. 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!

  12. 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

  13. 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.

  14. GIS Web Sites • GIS web sites “go bad” because of: • Poor user design • Poor performance • New issues: • Scripting performance • Database performance • Geospatial data access

  15. 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).

  16. 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

  17. Geospatial Issues • Pixels .vs geographic systems • Cartesian vs. tiles • Tiled data • Transfer speeds

  18. 180 -180 90 Height in Pixels -90 Width in Pixels

  19. 10,000,000 meters UTM, Zone 10 6,600,000 meters

  20. Pixels Geospatial Coordinates 0,0 Easting, Northing Positive X Positive X Positive Y Negative Y

  21. 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

  22. Raster Pyramid

  23. 0,0 Zoom Level 0 256,256

  24. Columns 0 1 0,0 0 Zoom Level 1 Rows 1 512,512

  25. Columns 0 1 0,0 0 Zoom Level 1 Rows 1 512,512

  26. Columns 1 0 0,0 0 1 Zoom Level 1 Rows 512,512

  27. 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

More Related