For better or worse, the words "Web services" and ".NET" seem inseparable; it’s become hard to have a conversation about one without mentioning the other. This issue seems to have gotten under the skin of Brian Schenkenfelder, president of n+1, Inc, a Linux and open source technology consulting firm. He says that not only is it possible, but actually prudent, to build Web services without using Microsoft’s .NET platform.
I recently had a chance to speak with Schenkenfelder, who will be speaking at the CNET event, "Building a Web Services Foundation", about his views.
Protection is the primary advantage
Builder.com: What, in your mind, are the advantages of using an open or public domain alternative for building Web services?
Schenkenfelder: Open source solutions are at least as stable and scalable as their closed counterparts, usually more so. They cost less and provide more flexibility as well. The biggest advantage, though, has to be protection: An open solution provides protection from forced vendor upgrades, protection from unresponsive vendors, and protection from vendors going out of business in the future. It returns control back to you, which lowers your risk of doing business.
Builder.com: You mention cost, which would be a benefit to someone just entering the arena, but what about a company with an established infrastructure, say .NET and Windows for the sake of argument. How would you sell them on making a switch?
Schenkenfelder: This gets back to protection. If you use .NET exclusively, you are putting your organization at risk. Your relationship with Microsoft is not symbiotic because they have all of the control.
For example, let's say Microsoft changes the way they do things, like changing from COM to .NET, and [they] force new licensing policies for this new way on everyone. You have no choice but to go along with them because you can't easily port to another platform, and the old stuff, Win98 or NT, is no longer supported. That relationship is a risk for your company because Microsoft has all of the power and you have none. In an open source environment, you can choose when and where you want to upgrade, giving you both protection and freedom.
Let's talk about established infrastructure, an old legacy machine, containing some critical functionality. It might be possible to load up a Java VM, a Perl script, or even a C application that can provide Web services, allowing your newer systems access to your legacy systems. Leveraging your older technologies in newer ways and providing value to an organization without a lot of new costs is what open source Web services alternatives can do for you.
Easy extensions make it easy to be locked in
Builder.com: Some would argue that because the whole idea behind Web services is that of an open, platform-agnostic way of building applications, it really doesn’t matter how they are built as long as they are externally standard. How would you answer that?
Schenkenfelder: You would think so, but alas, companies like Microsoft love the “embrace and extend” strategy. They provide extensions to the standard to make your life easier. But the reality is that by using those extensions, you become locked in to the vendor of choice. The beauty of open source is that the community doesn't have a secret agenda to lock you in to a specific technology. They are just trying to provide open solutions that follow open standards, and not proprietary junk.
Builder.com: Microsoft has been touting the ease of use of the .NET platform for building Web services, claiming that they can be built with a “single line of code.” Granted there’s a lot being done behind the scenes in that case, but is there an open source alternative that approaches this same level of ease of use?
Schenkenfelder: This one always cracks me up: You can do everything in one line of code. That works wonderfully in simple cases, but the real world is not simple. Once you start adding complexity and everything stops fitting into a simple case, I will be willing to bet that your lines of code will go up dramatically.
The other problem with simplicity is that when things go wrong, you have no idea what…is going on, and [you have] little chance of fixing it. In the open source world, the source code is available. That allows you to get under the hood and understand how the technology works when things [are] broken. That type of access will inevitably lead to better understanding of the technology, and better understanding will lead to better solutions.
To answer your question, open source doesn't currently have the level of "simplicity" that .NET has, but it does have a set of tools that make the development of Web services easier.
Builder.com: What is out there? Is there an ideal open Web service application stack?
Schenkenfelder: I will be covering this topic in much greater detail in my presentation at the “Building a Web Services Foundation” conference, but the short answer would be that there are Web service solutions for most of the popular languages like Java, Perl, Python, and C++. There is even a project, called mono, underway to implement .NET on Linux, including the C# language.
Find out more in person
You can find out more about open source alternatives to .NET for Web services development and how they can benefit your organization by attending Brian Schenkenfelder’s strategy session, “Working without a .NET” at CNET’s Building a Web Services Foundation conference.