I am building a simple website hosting service which will focus on the ma and pa type small company.
Now my dilemma is whether or not I ought to built it on your own or make use of an existing Content management systems. The Content management systems must be customisable, as If only to construct my very own client. I only want the consumer to need to put a title and content. Anything else is going to be hidden in the consumer.
Afterwards I wish to have the ability to connect my very own custom made web programs to some given page, therefore the Content management systems must have the ability to cater for your.
Another requirement is it must be Java based (Groovy acceptable).
A "simple" Content management systems is a reasonably complicated application when you start doing such things as user authentication, security, scalability, etc. You will find several things you will get wrong. The main CMSes available are afflicted by plenty of maintenance problems and security bugs and you will find a reasonable quantity of gifted people focusing on them. If you feel your Content management systems will change, I would recommend that it won't be. You will have to update and keep it constantly. If you are using an off-the-shelf solution you need to have the ability to enjoy the work individuals other designers do. If you wish to write your personal code, consider designing an off-the-shelf Content management systems or adding additional features or bug fixes.
Own Content management systems:
- Total treatments for the characteristics
- Simple for you to know
- You alone comprehend it and may repair it
- No bug fixes using their company designers
Off-the-shelf Content management systems:
- You can just do the installation, then focus on adding value
- Steeper learning curve
- Plenty of located solutions an internet-based help
- Many individuals can admin it if you are not around
- Bug fixes and security updates are launched through the vendor
- More limited when it comes to personalization, etc
- Someone must keep on the top from the updates and set them up, otherwise the client may be victim to some earthworm like the WordPress earthworms. With your personal Content management systems it's not as likely that somebody can create a earthworm only for you. (However your clients continue to be vulnerable to other security problems).
Think about the typical security problems that face every website faces: XSS, CSRF, SQL Injection, configuration errors, loose security, session hijacking, parameter validation errors, race conditions, etc. You have to handle all individuals cases, however the Content management systems suppliers happen to be doing that for you personally.
For your Java requirement, the Resin web server ships having a PHP interpreter that might permit you to deploy a PHP application in Java if you undertake a PHP Content management systems. It ought to be easy to port the PHP engine to a different servlet container inside a couple of hrs (I believe it's GPL).
You need to certainly learn a current Content management systems. Around creating one on your own will meet your needs. A current Content management systems having a live community (for example drupal or django) may have offered fundamentals, in line with the gathered connection with others.
Doing this can help skip the most popular mistakes of making a Content management systems, and will help you to concentrate on functionality and making your products, versus creating a framework.
Take a look at Alfresco Community Edition, it's java based and it is the first to become compliant with CMIS 1.. You are able to increase your web client/application onto it. It's ftp, webdav, cifs, http interface.
Liferay? You will be ready to go in under a few minutes.
Java based, Supports Groovy
If you wish to diy, have a look at CMIS. (No way, don't diy)
I can not imagine there is not a current Content management systems that will fit individuals needs. Will not research for you personally though -)
If you wish to determine some Java EE technology aspects or advantages/disadvantages it is best to create your personal Content management systems only for practice.
Before you need to do this undergo a few of the existing Content management systems to produce listing of benefits and drawbacks.
All existing Content management systems/frameworks/whatever can't fit well your personal problem but rather they're frequently too large to pay for as numerous cases because the can.
Yet another factor to consider. Would you like your Content management systems to operate great at Google Application Engine?