You make a living writing enterprise java applications, and you would like to work on your own projects for fun or profit, you would like to create your own web site or you would like to have a place to host your open source project. You look around for hosting providers, and all you see is PHP and PERL support, with very few hosting companies supporting Java, what to do?
Although the number of hosting companies supporting Java is increasing, support varies from nearly non-existent to companies that are deeply committed to their Java support.
There are three types of hosting plans available:
With a shared hosting plans, several web sites are hosted on the same server, sharing the server's resources and using the same IP address. Virtual Private Server (VPS) plans consist of a server that is split into multiple virtual servers, each virtual server has it's own IP address, some companies call these types of plans Virtual Dedicated Servers. Dedicated servers are the most expensive type of plan, each dedicated server customer gets their own physical server, nice to have, but prohibitively expensive for personal web sites and small operations.
At Ensode.net, we recommend that you find a hosting company that provides Virtual Private Server (VPS) support (some hosting companies call it Virtual Dedicated Server), since they provide a nice balance between price and control. A VPS server is like having your own server, usually with root access, which gives you the freedom to install any application you might need, including version control systems like Subversion or CVS, WebDAV, or anything else you might need. With a VPS plan you will most likely get your own IP address, and your server will be not only your web server, but also your mail and database server.
VPS hosting plans tend to be somewhat more expensive than shared hosting plans, but it is our belief that they are worth the extra cost since they provide much more control and flexibility. If you are a Java developer, chances are you are used to "getting your hands dirty", and working on a server using good old Unix commands. Shared hosting plans tend to have "user friendly" (dumbed down?) interfaces, which might simplify administration, but can also severely limit what you are able to do, for example, let's say a shared hosting company gives you 300 megabytes of disk space to host your web site, and an additional 300 megabytes for your email, if your web site takes 5 megabytes of space, but your email server is getting full, there is no way to allocate more space to store emails and reduce the allocation of web space. In addition to leaving you unable to reallocate resources as needed, you can also forget about installing any applications on your server. Another disadvantage of shared hosting plans is that an IP address is shared among several customers, which could have potential problems. For example, if one of the customers uses their mail server for bulk emailing, the IP address of that mail server may be banned from several systems, in a shared hosting plan environment, this would affect all the customers using the same server.
With few exceptions, shared hosting plans that support Java do so through a shared JVM, which means that you have no way of starting or stopping the JVM, and the same JVM is used to run the Java applications of all the hosting company's clients on the server. With a VPS plan, since you have access to your own (virtual) server, it is a given that you get full control over the JVM.
You can use your favorite search engine to find companies that offer VPS plans. Good luck and may your site become immensely popular.
David Heffelfinger is a software engineer with over 10 years of experience developing enterprise software applications. He is editor in chief of Ensode.net, a technology web site providing information about Java, Linux and other technology topics. He can be contacted via email at dheffelfinger@ensode.net.