Archive for the ‘Amazon EC2’ Category

Amazon EBS – Persistence for EC2

Looks like Amazon’s new EBS service addresses a major pain of working with EC2 – persistence.

A GeoWeb Use Case (for lack of a better name)

Sean Gillies has problems with GeoWeb as a term. Others have been getting annoyed about the professional vs. amateur labels.

Names can be such limiting things, especially when we’re experiencing something (or someone) for the first time. I think we should apply names loosely and focus more on the use-cases that desribe actors and what they do.

So here is a rough cut of a a use case I’d like to see supported some day.

The Actors
Web Host – hosts geodata and applications
GIS Programmer – writes geoprocessing components.
DataVendor – sells data services through a Web Host
Analyst – builds models from components and datasets
Viewer – runs web apps built by Analysts.
Advertiser – chooses web apps to advertise on.

What the Actors Do
The Web host provides a platform where DataVendors can upload geodata and make it available in the form of datasets. The web host allows DataVendors to pick different price plans for the data they are uploading (think WeoGeo).

The web host also allows GIS Programmers to upload geoprocessing components that read datasets to produce other geodatasets. A geoprocessing component is an executable that the Web host runs in a virtual machine that has fast access to the datasets. A GIS programmer defines a pricing plan for his component.

An Analyst builds models using a tool provided by the Web Host to chain together components and and datasets (think of modelbuilder on ajax). The analyst defines two pricing plans. The first is for viewers that run the model, the second for advertisers wishing to display (location based) ads.

A Viewer runs a model. The viewer may be charged by the analyst. The analyst, in turn, will be billed for use of the compenents and data.

A Real (Estate) Example
So for example, datavendorA pulls together parcel data from a large number of Appraisal districts and puts it in the Web Host and sets a price for their use. DatavendorB takes crime reports from police records and does the same. DatavendorC loads up lists of houses for sale.

GIS programmer develops a generic gravity model that creates a cost surface based on input datasets and sets a price plan.

An analyst builds a model that uses the gravity model component to rate parcels based on proximity to different types of crime, combining the house sale listings. The price plan includes advertising opportunities.

A Burglar alarm company sees the model and chooses to buy ads in certain locations.

A viewer runs the model to examine a map of houses along with crime risk. Paying whatever price established by the analyst.

The web host sorts out the flow of payments between the various parties. Note that this is basically what Amazon already does. I’m betting Amazon will be the first to implement something like this. As far as I know there is no mechanism currently in EC2 to support pricing plans for components. Hopefully that will change.

Confession: I’m using GeoWeb instead of “Web GIS” since I think it will get more hits from google.

Amazon Dynamo

dynamo
This graph is from a paper on Amazon’s Dynamo. I suspect other months (not during shopping season) would look quite different.

With a name like “Elastic Compute Cloud”, I would expect the price for EC2 to reflect the supply of available compute capacity – isn’t this what elasticity of supply is all about? Currently pricing does not reflect time of use. I wonder how much performance degrades for EC2 users during Christmas shopping season.

Amazon relaxes the Consistency part of the DBMS ACID requirement in order to achieve availability. Maybe another rule could be relaxed, the one saying keys should not have any meaning beyond their use as an ID. If we did this, maybe Peano keys could be used, providing a spatially enabled Dynamo-like system.