Question

Is there a way / tool to simulate Amazon's SimpleDB for the purpose of development?

In my quest for above, I found this tool but this is for the Mac OS. Anything that can be installed on Win XP? Needless to say, all SimpleDB APIs need to be supported.

Just in case it matters, mine is a .Net based web application.

Was it helpful?

Solution

SimpleDB/dev runs on Windows, Linux and Mac. The Wareseeker.com page that you found has copied the information across incorrectly. The Google Code project page for the tool is here

http://code.google.com/p/simpledb-dev/

OTHER TIPS

The C# library (http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1133) includes a mock library that sounds like it might do the trick for you. I have not used the mock functionality, but I believe that it uses an XML file as a backing store to hold the simulated domains.

One thing to keep in mind is that a few months ago, Amazon released the AWS SDK for .Net (http://aws.amazon.com/sdkfornet/). I'm still using the C# library and have not gotten around to looking into the AWS SDK, so I'm not sure if the mock functionality is included or not. Based on this thread, it sounds like the AWS SDK is a rollup of all the various service SDKs (including the SimpleDB C# library), so it may well contain the mock stuff.

I tried http://code.google.com/p/simpledb-dev/ with Typica, but it didn't work because of version mismatch. simpledb-dev seems to support only a 2007 version of the protocol.

I tried release 0.1.10 of simpledb-dev uploaded on Jan 02, 2009, which is the latest to date.

(I wanted to add this note as a comment to Andrew Fogg answer, but I don't have comment privilege).

UPDATE: further details. With Typica 1.7.2 I get the following error:

<Response xmlns="http://sdb.amazonaws.com/doc/2007-11-07/">  
  <Errors> 
    <Error> 
      <Code>NoSuchVersion</Code> 
      <Message>SimpleDB/dev only supports version 2007-11-07 currently</Message> 
      <BoxUsage>0.0000219907</BoxUsage> 
    </Error> 
  </Errors> 
  <RequestID>0827d740-9654-4c6f-bed4-f97d19b40430</RequestID> 
</Response> 

I also tried with the official AWS Java SDK version 1.1.3, but I could not find a way to point to a local server. AmazonSimpleDBClient accepts a ClientConfiguration object in the constructor, but there are no setters for server and port in ClientConfiguration.

Have a look at fakesb: https://github.com/stephenh/fakesdb, a Scala implementation of SimpleDB for local testing. Seems to be better maintained than simpledb-dev (I haven't tried it yet).

Another alternative may be node-mdb, a Node.js implementation: https://github.com/robtweed/node-mdb (latest commit 2 years ago).

Have you considered simply running multiple SimpleDB accounts for dev, test, and production? SimpleDB has a pretty generous free-usage tier so this doesn't cost anything unless you create a very large dev database.

I've had pretty good results using this approach plus mocking my SimpleDB interactions for unit testing.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top