Archive for the ‘technology’ category

Service Component Architecture

January 13th, 2010

Today, Fabric3 announced the general availability of their latest SCA implementation. Although I have heard the term before I have never taken the time to read further on the subject so this morning I decided to change that. This introduction to SCA by David Chappel does a good job at providing an overview of what Service Component Architecture is about.

In essence there is nothing revolutionary about SCA. In my view, it is an effort to standardise how services and their interactions are defined in a technology-agnostic manner. Anyone who has been developing enterpise applications using the Spring Framework or OSGi should be pretty familiar the concepts in SCA.

At the core of SCA are Services. Services are implementated using Components. Components can be composed (Composites) to provide more refined behaviours. All of these components and compositions of components live within a Domain. Interactions between these services are expressed as References. The actual communication between components is left to the responsibily of Bindings, thus isolating the business logic from the underlying remoting technology. The SCA runtime is responsible for dependency injections so services need not concern themselves with locating dependencies. Finally, the use of annotations and xml configurations mean that services/components can be implemented as simple objects.

Besides Fabric3, there’s another open-source SCA implemention from Apache called Tuscani.

I’m quite curious to see how practical/useful this architecture is. Hopefully I’ll find the time to experiment with one of these implementations.

Which CI should you choose?

December 8th, 2009

youbrokethebuild-smallContinuous Integration systems are nowadays a requisite for any half-decent software development outfit. There are many CI solutions available, some open source and some commercial. Over the years I have come across and used different ones: CruiseControl, Hudson and Bamboo. CruiseControl is highly versatile and works well but it is a pain to set up and maintain, especially in large teams where projects get added and modified regularly. Hudson works pretty and has an active follower base contributing many plugins. But I have to say Bamboo is my favourite thus far. It works a treat, scales well with remote build agents and the web interface is user friendly. Plus this is the one I use at work so I am very familiar with it. The only down side is the cost.

I have been setting up my own dev tool set at home so I can work on my own projects. What I need now is a CI tool. I was looking for comparisons between the various options and I came across this page on the ThoughtWorks wiki:

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

It is a very comprehensive comparison matrix and it seems to be updated frequently.

I’m still not sure which one I will go for…answer in the next post.

My Home Setup

December 6th, 2009

The latest addition to my collection of toys is an Apple MacMini Server. The reason I decided to throw a new server into the mix is that I wanted to have the ability to develop and run my own applications as well as experiment with new technologies. For a while I was using my 2-year old Mac Mini as a server but with only 1Gb of RAM and a mere  1.83GHz Intel Core 2 Duo CPU it didn’t really cut it. I now use it to watch TV and movies in my room. It works a treat. So now here is what my home steup looks like (click on the image to zoom in):

home setup

From the NAS I run an SVN server where I keep my home projects. On the MMS I have installed Tomcat, PostgreSQL and I’ve just deployed Atlassian Confluence (they offer a starter kit for only $10) so I have a central location where I can keep all the information I need.

And by using DynDNS I can have all of this accessible on the internet. I route all the traffic to the MMS and with Apache I proxy the Confluence requests to Tomcat and SVN requests to the NAS.

It’s a pretty cool setup which gives plenty of things to occupy myself with :) .

How dependent are you on the Internet?

November 7th, 2009

Me? Very! It took about 6 weeks for my broadband connection to be set up in my new flat (5 to get a phone line..thank you BT!). Until that I had the Internet through a 3G USB stick. It worked but was pretty flaky. Now, I’m back with a proper connection and it made me realise how dependent I am on the Internet. It’s a bit like you’re unplugged from the world without it. Email has become my primary form of communication. The first thing I do when I get home is switch on the TV and flick my laptop open on my Netvibes homepage. BitTorrent download is gift from the Gods. And I do a lot of shopping online too. So in short I am extremely dependent on the Internet. It’s good to be back online.

Atlassian Studio

October 17th, 2009

atlassianI’ve been using part of the Atlassian tool suite (JIRA, Confluence, Clover, Crucible, Bamboo) at work for a while now and I’ve been pretty happy with it. It works well. Atlassian is now offering Atlassian Studio, a hosted combination of all their main products in one with a decent pricing model. I think it provides a perfect solution for startups and small organisations looking for great development tools without the maintenance hassle. The main disadvantage is, as with all hosted solutions, the reliance on the provider. For those happy to make this compromise I would greatly recommend this product.

What is it with cloud computing these days?

August 25th, 2009

Cloud computing has become a very fashionable topic in the last 12 to 18 months as Google Trends illustrate:

Google Trends

Everything is going the cloud way they say. I have to admit it is quite interesting an idea, in theory at least. Hardware as service : you only pay for what you need. Plus, you get easy scalability – well, providing that your software stack scales too -. So if you are a small to medium size company with a few online services, Amazon EC2 would most probably be more cost-effective than having your own data-center. If you are a company with heavy online services then I would imagine your CTO would look twice before agreeing to rely on a third-party company for your entire hardware infrastructure.

On the same topic, Spring Source (now part of VMware) recently announced the availability of an Enterprise Java Cloud. It reminded me of an article I read on The Server Side.  Apart from the dodgy title, the author makes an interesting point about cloud computing solutions with integrated software stacks which seems to be where Spring Source is positioning itself.

We will see how the technology evolves and whether cloud computing is just another buzzword.

Internal Server Error

June 15th, 2009

For quite a while my site has been down. It must have been caused by some kind of upgrade my web hosting provider has run. I’ve noticed the issue sometime ago but thought there was some maintenance on their servers so I didn’t look further. After a while though I realised  something was obviously wrong with the site so I decided to dig around a bit. From the error log files I noticed the following entries

wrapper: /web/sites/…/public/blog/index.php: Script is writable by others

Quite an odd error. So as always I googled it and found some info here: http://www.colinmcnulty.com/blog/2009/03/22/recovering-from-internal-server-errors. Following the detailed solution I’ve quickly brought back the site up. I’ve been fairly satisfied with this provider which I’ve been using for years. In fact it’s really the first time I’ve had such issue so I guess I can’t complain so much. Plus, it’s always a nice feeling to fix something.

Dropbox

September 13th, 2008

I just came across this site which offers to “Store, Synch and Share your files online”. There are a few similar services available on the internet but the difference is that Dropbox seamless integration with your desktop (be it on Windows, Mac or Linux). It offers 2GB for free and you can get more storage for a monthly fee. I decided the sign up and give it a whirl.

small_logo.gif

First impression is very good. The software installed without a glitch on my MBP and Windows Mediacenter. And it worked just as it says on the tin. I was able to copy new files into my Dropbox folder and I would find them available on the other computer There’s also a public folder with allows you to share files online with anyone, not just other Dropbox users. There’s even support for photo slideshows. Overall it does look very good.

New Kit

September 6th, 2008

A few months ago I purchased a iomega UltraMax. At the time it seemed like a sensible choice and to be fair it did work as expected. I plugged it to my MM (MacMini) and could back up my MBP (MacBookPro) and MM nicely. Plus I could share my music, videos, etc. to other computers on my network. On top of that it supported RAID-1 so my data could survive a disk failure.

Well, the problem is that about a month ago it suddenly stopped working. It started indicating that both disks had a failure. WHAT??? BOTH DISKS??? I thought I lost all my data (10 years of photos, all my music and personal files). I decided to take a look directly at the disks via a USB enclosing (once I managed to find one). It turned out both disks were just fine (what a relief!!!). It was in fact the UltraMax disk management system which decided to give up all together.

So what was the next move? Well, I decided that a more robust solution was the only way forward so I started looking around for a NAS drive. And at the end of my search I set my sight on the NetGear ReadyNAS NV+.

picRND4425_non_ds.gif

I’ve had it running for a month and I’m really happy about it. It runs with 4 500GB disks in what NetGear call X-RAID (automatically picks the best RAID configuration based on your disk configuration). It also comes with an iTunes streaming server, BitTorrent client and supports UPnP. That’s really cool because I can then watch videos or listen to music straight from my PS3. It’s obviously more pricey than my old kit but it is definitely worth it.

Spring Application Platform

May 3rd, 2008

SpringSource has just released the first version of their application platform. It is based on Equinox (OSGi implementation from Eclipse). Although not mature enough yet, it certainly looks very interesting.