My New Open Source Library for Amazon SimpleDB

My last post was about Amazon Web Services. I’ve spent the last week getting up to real speed with SimpleDB, their data base product.

Actually, AWS is really bleeding edge now. Some of their major components, including SimpleDB, are still in Beta. And now I’ve learned what a “limited Beta” is: it means they let a limited number of people sign up, and then cut off more users. I found out the hard way that Simple was a LIMITED beta. But, fortunately, with a bit of begging, I managed to get authorized to use the service.

Part of bleeding edge is a serious lack of general previous experience. When I started on my current web project, I decided to use what is called a LAMP development environment: Linux, Apache, mySQL, and PHP. Because this has a well-established user base, there’s lots of open source code and other tools available for development. You don’t have to start from scratch. (That doesn’t mean there’s not a lot of crap out there, but you seldom have to start from nothing.)

Not so with AWS, and especially SimpleDB. Amazon has provided pretty good documentation, but it is mostly about how SimpleDB really works, and its API. That’s all based on web transfer protocols. This really isn’t PHP. And Amazon has a bunch of basic libraries that implement the API protocols in several programming languages, including PHP. (That’s one plus for AWS – they use web protocols that can be implemented in practically any web development programming language.) But the interface libraries really take the AWS SimpleDB view of the world – they aren’t far from the AWS API, but are quite a ways from how one usually programs in PHP. Not that they don’t get the job done – it is just painful.

Thus my new library which I’m calling paws for PHP for AWS. Eventually I guess I’ll write versions for the main AWS services, but for now I’ve just released the SimpleDB version. It took me a week, and I think it’s pretty cool. All of the confusing AWS API view is completely hidden away – kind of like assembly language programming vs. a high-level language. Now all you have to do is concentrate on building your data base logic. The code for accessing it is now very easy.

I’ve been doing this sort of thing for over 30 years. I have a feel for what a library should look like for a programmer. I like things simple, and try to take the time to find the simple way of doing things. It is worth it in the end. With a well-designed, easy-to-use class, you can save hours and hours of programming later. Instead of figuring out how to use your tool, you can concentrate on the logic of your application.

So I’m building a proprietary web site – why release this library as open source? Partly because I’m pretty proud of my design, and since no one else has release an equivalent library, it stands a pretty good chance of helping a lot of people, and having a lot of people using it. And if it is a good as I think, it might even become a standard library used by SimpleDB PHP programmers. Before long, there could be other tools based on this library, and the learning curve becomes shorter for everyone. And in the end, I’ll get paid back for my effort far more than if I had kept it proprietary.

And that’s how you get past the bleeding edge.

About brucewampler

I've had a long and varied careen in the computer industry. I taught computer science at the University of New Mexico for nearly 15 years. I founded two successful computer software companies. I wrote the first spelling checker and first grammar checkers for personal computers. I've lived in Glenwood Springs for 10 years. My wife, Trina, grew up here, and I've been coming to Glenwood since 1977. My kids have attended the local public schools, and have had a great experience. My son, Van, will be attending the University of Colorado starting in the fall of 2007, and my daughter is a Sophomore at Glenwood Springs High School. I've been on the Roaring Fork School District Board of Education for almost 5 years. Working with our kids, teachers, schools, principals, administrators, and the Roaring Fork community has been one of the most rewarding experiences in my life.
This entry was posted in Programming, Web Development and tagged , , , . Bookmark the permalink.

3 Responses to My New Open Source Library for Amazon SimpleDB

  1. Hello Bruce, thanks for sharing your code. This page comes up as fourth for the Google query “simpledb php”, but I was sorry to see that there was no link to the code you describe. With a little more searching, I think I found it:

    http://code.google.com/p/paws-library/

    Perhaps it was an oversight. Thanks again for giving back.

  2. jim says:

    Bruce, thank you for sharing paws. I’m just getting into AWS and SimpleDB and was looking for a simple to use PHP library and this looks very promising. Keep up the good work!

  3. David B. says:

    Hi Bruce,

    I really like paws. Soooo much easier to use than the SimpleDB php library provided by Amazon. Do you have any intention of adding the new SimpleDB features
    ? Amazon just released Consistent Reads and Conditional Puts & Deletes. I sincerely hope you do.

    Cheers and thanks for the good work

    David

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s