Matt Woodward’s posterous

Matt Woodward’s posterous

Matthew Woodward  //  * CFML, Grails, and Java Developer
* Principal IT Specialist, US Senate
* Open BlueDragon Steering Committee Member
* All-Around Geek

Jun 5 / 10:11am

Open BlueDragon on Google App Engine - Sample App and Presentation PDF

This is long-delayed after cf.Objective() 2010, but here is a zip of the sample app and the presentation PDF from the presentation Peter and I gave on running CFML applications on Google App Engine.

We also gave this presentation at the CFMeetup a couple of weeks ago (you can watch the recording), and are doing it again for the Mid-Michigan CFUG on Tuesday, June 8, at 7 pm Eastern US time.

To use the sample app create a new Google App Engine project in Eclipse, then copy the unzipped files into that project.

If you need help getting up and running with GAE on Eclipse, check this blog post on the Detroit Area Adobe UG's blog, or check the GAE for Java page. The MMCFUG may also be streaming this meeting live so I'll post again with a URL if that happens.

I didn't add this to the PDF or code before I uploaded them, but both are released under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Creative Commons License

Click here to download:
openbd_gae_sample_app.zip (13309 KB)

(download)

Comments (2)

May 17 / 10:00am

CFMeetup this Thursday! "Living in the Cloud: CFML Apps on Google App Engine"

Our 12pm (US ET) talk on Thursday May 20 will be "Living in the Cloud: CFML Apps on Google App Engine", with Matt Woodward & Peter Farrell.

TOPIC DESCRIPTION: (provided by the speaker)

If you want to take advantage of the power of cloud computing but want to focus on applications instead of server infrastructure, you owe it to yourself to check out Google App Engine. Google App Engine lets you deploy applications to Google's infrastructure with the push of a button, and the best part is that for many applications it's entirely free of cost.

In this presentation we'll discuss both the benefits and downsides of living in the cloud, outline how Google App Engine differs from other cloud solutions, and demonstrate how to build and deploy a simple CFML application to Google App Engine using Open BlueDragon, which is the only CFML engine compatible with Google App Engine.

If you're interested in running your CFML applications in the cloud come get in on the ground floor, because with a few simple tips and tricks, it's all clear skies.

Peter Farrell and I will be doing our OpenBD on Google App Engine presentation from cf.Objective() on the CFMeetup this Thursday at noon Eastern. See you there!

Comments (4)

Mar 21 / 8:08pm

Using OpenBD on Google App Engine? Please let me know!

Peter Farrell and I are working on our "Living in the Cloud: CFML Applications on Google App Engine" presentation for cf.Objective(), and we'd love to include a mention of any sites out in the wild that are using OpenBD on GAE. So if you're using OpenBD on GAE for production sites or even just some experimentation with all the cool possibilities available on GAE, please let me know!

You can leave a comment here or send an email to matt at mattwoodward dot com. Thanks!

Comments (5)

Dec 17 / 8:41am

Naked Domains in Google App Engine with GoDaddy | Dave Shuck's Blog

I recently set up a new site (hikethecanyon.org) on the Google App Engine running OpenBlueDragon.  By default when you set up a new site on GAE (Google App Engine), you choose an ID for your application, which must be unique on their system as it also serves as the hostname of the URL like this: http://[your ID].appspot.com.   For those that would like to use a different domain name, Google App Engine has mechanisms for doing so.  In the administration panel of your application, you can add a domain and then choose hostnames from that domain that the application should respond to.  However, it makes no provisions for serving the "naked domain". 

Excellent step-by-step by Dave Shuck on how to get "naked domains" (meaning no "www" prefix) up and running on Google App Engine.

Comments (0)

Dec 15 / 3:48pm

Dave Shuck Relaunches hikethecanyon.org on OpenBD for GAE

Around a year or so ago, I inadvertently took hikethecanyon.org offline in a server move.  Considering that it is a very low traffic site that is little more than a scrapbook of hiking pictures and descriptions, there is no active user community to send me nasty messages begging for me to bring it back online.  Finally this past weekend, I spent a bit of time and revived the code base off an old server, moved all the images out to Amazon S3 and brought the site up running under OpenBlueDragon on the Google App Engine.

Another site goes live on OpenBD for Google App Engine--I think we'll be seeing more and more sites like this on OpenBD for GAE as CFML developers discover just how easy it is to leverage their CFML skills and still be able to take advantage of Google App Engine.

Comments (0)

Nov 25 / 11:21am

First (?) Production Site on Open BlueDragon for Google App Engine

Yesterday Peter Farrell pointed me to a brochure site he did for a friend. Looks great, it's running Mach-II 1.8 beta, using SES URLs, all great stuff.

Then he told me it was running on Open BlueDragon for Google App Engine (GAE). VERY cool. You can read a bit more about it on Peter's blog. I could be wrong, but I think this may be the first production site running on OpenBD on GAE. (If there are others out there, I'd love some links!)

The interest in running CFML apps on GAE has really been picking up lately, and with good reason. It's a dead simple way to deploy CFML applications to Google's cloud, and unless the site is going to get a huge amount of traffic it's completely free.

Free CFML engine, free hosting, easy deployment right from Eclipse ... there's a lot to love here. No more hunting around for cheap shared hosting accounts that are so restrictive they're barely usable, no more spending money on a VPS if you don't need one (though I highly recommend them!), you just build your app and deploy right to GAE.

Since a lot of people I've been talking with recently aren't all that familiar with GAE, I'd like to point out that it's a bit of a different paradigm than many other cloud computing services. Unlike Amazon EC2, where you're dealing with things at the server level, GAE is application-oriented. So you don't have a server with an operating system on which you install a servlet container and OpenBD, instead you're simply deploying individual applications to Google's Java infrastructure. It's a really nice way to do things since the server-level stuff is all handled for you.

Be aware that there are some restrictions on what you can do on GAE vs. deploying on your own server, but really these are just differences rather than any huge impediments:

  • Unless you use the Virtual File System (VFS) that Vince Bonfanti has been building, you can't write to the file system. Note that you can use the VFS on all Java projects on GAE; it isn't specific to OpenBD.
  • The limit on the length of a single request is 30 seconds. (Not a problem unless you're generating reports or something.)
  • You can't ...
    • open a socket or direct connection to another host. You can use GAE's URL Fetch Service to call other hosts on ports 80 and 443.
    • spawn new threads
    • make system calls
  • There are some limitations on request/response sizes, maximum file sizes, etc. but all are quite reasonable.
The big difference is that you can't use a traditional RDBMS like MySQL. Instead you use Google's Datastore, which is a "schemaless object datastore." You can read more about Datastore here. So what does this mean for CFML developers? Well, OpenBD for GAE implements persistence for CFCs to Google Datastore, so you can save your CFCs (works for structs as well) to the Datastore by using the GoogleWrite() function, and there are also functions to run queries and read single objects from the Datastore. You can read more about OpenBD's Datastore integration on the OpenBD wiki.

There has also been some work done on making a file-based RDBMS like H2 work with the VFS, and although it works apparently the performance is pretty slow at the moment. When the issues around that get resolved that will be another nice option, since a database could be deployed to GAE right along with your application code.

Personally I'm really excited about the opportunities this offers CFML developers. It could not be simpler to build a site and deploy it on Google App Engine, and the benefits of being on the Google infrastructure are pretty amazing. If your application doesn't get a huge amount of traffic it's completely free, and if your application starts to grow, the underlying infrastructure will scale up automatically as needed. That's one of the many benefits of cloud computing.

If you're interested in getting started with OpenBD on GAE, make sure and join the OpenBD Google Group, check out the GAE section of the wiki, and there are some great blog posts by members of the OpenBD community as well:

As I said, there's lots to love here, so I encourage you to give it a try.

Comments (1)

Nov 21 / 9:35am

CFML on the Google App Engine with Open BlueDragon | Progressive Overload

There is just no reason that we as cfml developers shouldn't be churning out app after app on this platform.

Amen to that! Great post about running CFML apps on OpenBD for GAE.

Peter Farrell made a small change to Mach-II 1.8 based on a suggestion by Dave Shuck that allows Mach-II to run on GAE, and the nice thing is it's a huge performance improvement in one specific area of the framework from which all Mach-II users will benefit.

Very exciting stuff.

Comments (4)

Sep 10 / 1:00pm

OpenBD Google App Engine and cfc's - Paul Kukiel

In my previous OpenBD on Google App Engine post I mention there is no relational database ( yet ) for OpenBD on GAE. There is however the ability to write and save objects directly to Googles Data Store. This sort of feels like working with an ORM but it's even more abstracted as there is not actual database that we can see but we can put objects in this place and run simple queries against the data sets.

Here is a code snippet:

Persisting Data:

  1.   
  2.   
  3. cfset v = createObject("component","Visitor").init() />  
  4.   
  5.   
  6.   
  7. cfset v.setFirstName("Paul"/>  
  8.   
  9.  
  10.       in a collection called Visitors --->   
  11.   
  12. cfset googleWrite(v,"Visitors"/>  
  13.   
  14.   
  15.   
  16.  
  17.       This will return an array of Obhjects ( cfc's ) that are 
  18.       in the datastore in the Visitor collection    --->  
  19.   
  20. cfquery name="dataStoreQuery">  
  21.   
  22. select  
  23.   
  24. from Visitors  
  25.   
  26. cfquery>  

select
from Visitors

Notice I must use variable.VariableName rather then cfproperty name="variableName this is explained here.

Here is a small application to demonstrate this in action:

Click Here for a live demo.
( Yes it looks like UniCode just works :) )

Being that it lives on Googles servers the application should be very fast and I expect Googles connections to be very fast you'll notice I do a cfhttp call in every page request you almost don't even notice it's happening.

I really have no metrics to judge/comment on the performance of the datastore but I am working on a project with Rob Parkhill which will make use of the datastore or the SQL engine that's being built so I may have something to report in a few weeks/months.

Here is the official OpenBD wiki entries on the datastore.

Here is the sample app code:




Visitor.cfc


Great intro by Paul to some very slick stuff with OpenBD on GAE! Make sure and read the comments--Vince is working on making this syntax compatible with the ORM functionality in CF 9.

Comments (0)

Sep 6 / 9:11pm

OpenBD on Google App Engine Installation Screencast by Paul Kukiel

Paul Kukiel has put together a very nice five-minute screencast showing just how easy it is to get up and running with Open BlueDragon on Google App Engine.

Thanks Paul! Great work!

Comments (1)

Sep 4 / 7:19am

Google App Engine Now Supports XMPP

This could open up some very interesting possibilities indeed.
http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes

I'm still plugging away at ColdTonica, but one of the pieces that will eventually be added is Jabber support, so ColdTonica running on Open BlueDragon on Google App Engine could become a reality at some point. Very cool stuff.

Filed under // Google App Engine

Comments (0)