Wednesday, October 3, 2012

Oracle Open World - wednesday

Another day in San Francisco! Today's sessions are mainly about deveoping apps in the cloud, but there's also some ADF and an ADF Meetup tonight. I saw my early morning session about Java Heap and memory usage cancelled, so I used the extra time to go running in a San Francisco where the sun was just coming up. Lovely!

Develop apps with Oracle database cloud services (Rick Greenwald)

This session was presented to us by Rick Greenwald, director of Projectmanagement at Oracle Cloud. It didn't really tell me anything new. It was more of an APEX session than a cloud DB session. Rick gave a demo of an APEX application, running in the cloud.

One thing I noticed, though, was that the Oracle cloud DB only supports 1 schema. And that it's expensive. Pricing is $175 a month (for 5GB storage, 50GB would be $2000 a month). If you consider it includes everything (license, server, support, ...), it's not all that much, but if you take into account you can get a 5 GB MySQL cloud database, $175 is quite a lot. There's also a data transfer limit of 6 times your storage. Rick however told us that they will be monitoring the traffic (to avoid DOS attacks), but won't undertake any immediate action upon exceeding.

Another issue is that when you want to access your database from outside Oracle cloud, you'll have to use RESTful services. SQLDeveloper has a cloud connector built in these days, so you can still easily connect to your database. But if you want to connect another application (not running in Oracle cloud) to your cloud database, you need to expose your queries to REST web services. We were shown this is quite an easy process, though, but you really don't want to do this for larger applications.

I think Oracle Cloud has a lot of potential, but also a lot of limitations. You'll be kinda forced to use a full Oracle stack if you want to have all the benefits. Of course, if you just intend to write an APEX application, one Oracle cloud database can work wonders.

Developing with cloud services (Chris Richardson)

Chris Richardson is the founder of Cloudfoundry. He presented a very nice session on using cloud services. He used an application he wrote as guidance through the session: VoteMeetEat.com. The concept is simple: you text the word 'register' to a certain number, you get a confirmation SMS with an URL, you subscribe to that URL and you're in the program. The idea is to find restaurants and friends nearby. Anyone can then vote on a restaurant of their choice, and a group of friends can meetup at the highest voted restaurant.

To vote, you have to call a certain number, and based on your location it reads you the available restaurants. You vote by using your keypad. All participants receive a text message with the results. If you have to all write this by yourself, it would take months to get it done. And it would be a huge headache. So Chris takes advantage of cloud services, in this case for location, data and telephony.

In the demo he gave, he showed the different services he used. As a database to store friends in, MongoDB was used. It has an integration with CloudFoundry, so it's easy to use. Then, to find the restaurants nearby, a 3rd party service named Factual was used. Based on the geolocation of your phone, the Factual API returns a list of restaurants, and their information.

The most difficult part to setup and maintain yourself, though, is telephony. Setting up a database isn't all that difficult, but setting up your own telephony provider and maintaining it, doesn't sound like something you'd want to do yourself. And then we didn't even mention the complex protocols. So Chris has Twilio to do that for him. You talk HTTP to Twilio, Twilio handles all the complexity of the telephony. It's on a pay per use basis, so if your app is rather small, it's not all that expensive.

The VoteMeetEat application is a very nice example of how cloud services can be used to make the life of the developer a lot easier. And to lower development , hardware and maintenance costs.