So many choices, so many considerations, so little time — how is a person to choose a Web platform and still be able to sleep at night knowing he or she made the right choice for their organization?
Since the time I first stumbled onto the Web scene and had to choose a Web platform about six or seven years ago, the medium has matured exponentially.
The good news is that choosing a platform from the major players means that you should end up with a stable and capable outcome regardless of which way you go.
The bad news is that the similarities in the major platforms are far more prevalent than the differences.
The two main platforms I will be considering in my discussion are the Microsoft set of tools (.NET, Windows XP, IIS, ASP) and the open source flavor of the same (J2EE, Linux, Apache/Tomcat, Java, JSP, PHP).
The most important thing to keep in mind, regardless of the choice you make, is that you can rest assure that the technology will change, the platforms will change, and you will continually have to assess and evolve your environment and your applications.
Whatever technology choices you make, approach as much development as you can with a cross-platform mindset because sooner or later something in the mix will change. Like death and taxes, rapid and frequent changes in technology is a given.
Like any other important business decision, you need to compare your choices on some standard criteria. The following are what I see as the most important criteria to use as you choose a Web platform:
- What are the upfront costs?
- What are the costs going forward?
- How will this integrate with existing systems and environments within my company?
- How will it meet my needs in terms of:
- What is the ease of initial set up?
- How involved, difficult, or frequent is ongoing maintenance?
- What are the skills needed to administer and maintain the platform?
- How secure are the settings “out of the box?”
- Who is monitoring known and potential vulnerabilities and how do you protect your systems from them?
Let’s do some comparing of the Microsoft and open source platforms based on these criteria.
A typical Microsoft Web platform might consist of the following:
|Operating System||Windows XP|
|Languages||ASP, XML, Visual Basic, C#|
|Relational Database Access||ADO.NET|
|Discuss why you chose the Web platform you use in Intranet Journal’s Discussion Forum.|
Choosing Microsoft technologies for your Web platform will cost you money both upfront and ongoing.
For starters, the operating system, Web server, and development tools will have initial licensing fees as well as ongoing upgrade and support costs.
If your company is already a predominantly Microsoft environment with respect to desktop tools and application development, this suite of tools will integrate very nicely.
You can capitalize on the existing skill sets of your developers as that knowledge is easily transferable and utilized within these tools.
If you want to take advantage of Microsoft-specific functionalities and bells and whistles, this most definitely is the platform to choose.
The debate over Microsoft’s availability, reliability, and speed has been around almost as long as time itself.
With all due respect, there are already numerous small and large scale Web applications in existence that utilize this technology so take the extreme anti-Microsoft pundits with a grain of salt.
As anyone who has ever booted a windows PC knows, there is a lot of overhead associated with the rich, user-friendly (comparatively speaking) feature sets inherent in Microsoft tools.
Keep that in mind when designing your Web architecture, infrastructure, and hardware needs if you choose to go the Microsoft route.
Compared to open source, the initial set up of Windows and IIS is much more user friendly and can be completed faster and easier.
However, the novice needs to be aware (and beware) of the default settings and truly understand the implications of choices made in the configuration wizards.
Microsoft Service Packs and periodic updates are a fact of life. Thus, your administrator must keep up to date of the latest and plan maintenance time to handle both the expected updates and the unexpected security patch releases.
A history of successfully working with Microsoft technologies is a must for the skill sets of the person working with this platform.
These tools sport the usual GUI and wizard-based configuration tools we have come to expect.
That being said, even if you don’t already have a Microsoft guru on hand, documentation, books, certification, and training opportunities abound for anyone who has a strong technical background and now needs to learn these new skills to maintain the Web platform.
As I already mentioned, the Microsoft toolset is potentially less secure “out of the box” than its open source counterparts.
That doesn’t make it bad or less secure on the whole, but it does mean someone has to be very conscious about how they configure things.
In addition, there is the intangible security risk inherent in the fact that, to hackers, Microsoft platforms are like candy to a baby — they want to have some to play with and enjoy even if it belongs to someone else.
Lastly, plan on allotting time to stay on top of and install the latest security warnings, updates, and patches.
A typical open source Web platform might consist of the following:
|Web Client||Java Server Pages (JSP), Java Servlets|
|Languages||Java, PHP, XML, Perl|
|Relational Database Access||JDBC|
Upfront costs can be as low as free. It doesn’t get any better than that in the world today.
There are no upfront or ongoing licensing costs as these technologies are part of the open source community and mostly covered under the General Public License.
Costs going forward primarily rest in keeping a talented and up-to-date staff “in the know” with the current and next evolution of these technologies.
In addition, you have the option to purchase ongoing support from third-party vendors (e.g., Red Hat Linux) should you require more formal support.
Because most of these technologies were born out of the programmer community wanting “a better, more robust and more stable solution,” cross-platform compatibility is high.
Keep in mind that using the myriad of available packages and APIs to achieve this integration will probably take more time and effort than the scenario I describe above where you integrate Microsoft with more Microsoft.
Again, the debate over what platform has higher availability, reliability, and speed lingers.
The initial overhead with the open source software is smaller. In addition, you can pick and choose the pieces you truly need.
As you add more services and add-ons to your configuration, like anything else it becomes more complex and requires more hardware oomph to achieve the same performance.
The best performance, regardless of platform, comes from knowledgeable administrators and developers that know how to get the most from the tools they use.
Initial setup as well as ongoing maintenance requires a strong technical staff. Weeding through the open source documentation and configuring the tools requires a significant amount of technical savvy.
Expect little to no GUI and an assumption of existing technical knowledge when installing and using these tools.
That being said, it isn’t rocket science and most technical staffs worth their money can certainly tackle the learning curve if given the time and resources.
Open source is to software as it takes a village is to raising children. It is always under scrutiny by a wide range of talented programmers in many countries. As a result, there are very few security holes not already known about or fixed in subsequent releases. Like any technology, though, it is not iron clad and needs a talented administrator to configure, maintain, and stay on top of things.