SOA and Software Appliances
One important trend in regard to SOA deployment options is virtualization. Virtualization is an important enabler of verstility and mobilty of services. A relatively new trend in the realm of virtualization is Software appliances, which can even serve as an on-site alternative to the Software as a Service concept. Software appliances also provide a viable option for packaging services for deployment.
The idea behind a software appliance is to isolate the software from the OS, wrapping it with the set of capabilities (parts of the OS) that are needed for its operation. The idea is to deploy a working instance of software appliance regardless of the host OS - i.e. you get a single image you can run on a clean machine, a VMWare, an OS installation etc. Software appliances have reduced memory and resource foot-print vs. deploying a full blown virtual server the a software package installed on it. Another advantage is that you do not need to worry about certifying the application to the OS, driver incompatibilities etc.
For example a couple of months ago Layer 7 introduces their version of Service Firewall as a software appliance, a more recent example is a company called rPath, a provider of a platform for creating software appliances which earlier this month received an innovation award from SoftwareCEO.
rPath CTO Erik Troan gave a tuturial on building software appliances in the Next Generation Data Center conference which ended this week in San Fransisco. IBM's Gerrit Huizenga summarized it. Gerrit noted that there are a few problems with virtual machines. The shear number of virtual servers that gets installed makes administrating almost as painful as real servers. Additionally hypervisors (virtualization platforms e.g. Xen, MS Virtual Server, VMWare ESX and VM Servers etc.) have dependencies on their OS which spell compatibility issues.
Gerrit mentions that a software appliances can be considered as a software service within SaaS. However, he says Eric believe that Software appliances can help enhance SaaS as you don't have to worry about compatibility issues,and co-locating seoftware appliances on the same physical hardware can bring performance Benefits. He also cites several other benefits of software appliances that Eric mentioned:
There are a lot of other advantages, such as the fact that a software appliance is easier to test (it is always the same stack, no matter where you install it), easier to support (stack is well known, all customers using the same appliance), and easier for teams to configure (again, all components are the same)
Gerrit thinks that software appliacnces would be good both for SMBs and large corporations and that it would help promote virtualization in data centers as well.
In LinuxWorld Expo (a sister conference of the above mentioned NGDC conference) VMWare co-founder and chief scientist Mendel Rosenblum, said that software appliances may have implications for OS vendors:
Asked if he thinks the virtual appliance model is a threat to OS vendors, principally Microsoft, Rosenblum said, "If I were in their shoes ... I think the answer is yes."
Coming back to SOA - Software appliances can provide an easily deployable service instances increasing the overall decoupling and reducing the cross-application friction (compatibility, versioning) when co-locating service deployments on the same physical machines. Indeed, it seems Software Appliances is an angle you should explore when you design your next service deployment.