An increasing number of people are starting to ask me what SOA is. I have no idea why its suddenly finding awareness right now, but there you have it.
SOA - Service-Oriented Architecture - is not a protocol, a format, or even a technology. It has nothing to do with SOAP (Simple Object Access Protocol) - or least, it doesn't have to. It doesn't refer to a specific set of technologies either - though it is being used in association with a certain kind of environment.
More and more developers and content creators on the web are thinking of their work as part of a service, rather than as a product. Take Flickr: rather than being a photo-hosting site like many membership-based art sites, or photo.net, it is a photo-sharing site. What's the difference? The intention in the former may include charging other people just to see your picture, and certainly you expect people to come to your page to see the picture; the intention in photo-sharing is kind of the opposite - you make your picture available, and provide an API (application programming interface) which allows people to grab your picture and put it in their on page if they so wish. Now you have always been able to do this by manually downloading the picture and reusing it, (which has historically been thought of as stealing IP), or by manually hotlinking (which has tended to be thought of as stealing bandwidth). Now people provide hooks in their API that allow you to do it on a systematic basis.
See an example: this page plugs into catherinerbond's Flickr account, and provides some code to copy and paste into a blog entry to display the picture. Far from being seen as stealing bandwidth, Flickr's API positively encourages this.
Now if you extrapolate this idea out to most of the other things you like to do on the internet (log in to things, upload things, read things, write things, etc) you start to hit logistical problems. Wouldn't it be great if instead of creating an account and logging into every website out there, you could reuse the same login each time? MS's Passport attempts to solve this problem, though it hasn't really gone very far beyond MS products.
So in larger corporate environments, which tend to be focussed around enterprise technologies such as Java and .NET, the kinds of technical infrastructure necessary to develop services like this as are refered to as SOA. The reason SOA is an enterprise-level concept (and as such isn't used to describe web2.0 type services such as Flickr), is that the kinds of things that have traditionally been achieved by using monolithic standalone software (such as accounting, stock control etc) are now being seen as services - and as such need to stop being monolithic standalone pieces of software.
So, on the web, different services might want to talk to each other (eg a website which allows you to export content to PDF and Flickr talk to each other to create a PDF photo album). In enterprise, different companies might want their IT systems to talk to each other (eg a mail-order retail company want their computers to talk to the computers at the delivery service company in order to track orders). Their big problem is that by and large, they already have systems which were not designed to talk to each other, and they need to make them talk to each other now.
So the basic point is: SOA is not a technology, or even a technique. It's about enterprise-level organisations trying to alter their technical architecture.