cancel
Showing results for 
Search instead for 
Did you mean: 

CMS Vs RDBMS

samthakur74
Champ in-the-making
Champ in-the-making
Hello,
I am trying to figure out if i really need a CMS solution or can i get away with using RDBMS.
The highlights of the requirements are:
1. This is a web application which manages workflow of documents between various stake holders.
2. Meta data for documents does not need to be "ripped". It will be provided as part of the file upload
3.Search is on file metadata only. Not on file content.
4. We need to maintain last 3 versions of the document for compliance purposes
5. The usual features on user and role management

I felt that for the requirement above, one really does not require a CMS. The files could be stored as LOB's in an RDBMS.
Workflow, user management , seem to me are not reasons to choose a CMS solution.

What are the top reasons for using a CMS solution?
Please let me know you thoughts

regards
Sameer
10 REPLIES 10

norgan
Champ in-the-making
Champ in-the-making
Hi Sameer,
do you realize, what your question really is : You are asking "Should I build my own car, using an combustion engine - or should I use a prefabricated car ?

Lets ask it the other way around : What is your estimate to implement this with your own RDBMS system ?  Anything above 20 days a thorougly designed, developed, tested, documented, extensible sytem ? Forget it.

With Alfresco, you have everything except the exact metadata model out of the box - Setup incl. servers, backup, firewall adjustments etc. well below a week (5 persondays) for a prod environment, if you have an up to speed IT team.

rg 1) If you cannot work with simple workflows and the advanced workflows, provided as examples, are not enough, you have to develope your own workflow. This is probably by far the biggest workpackage in terms on spent person days

rg 2) The metadata is not "ripped", but property fields of MS office/pdf documents are read. you can automate your own formatimport by adapting a parser. you will, however, have to define content types, which will provide the fields to store the metadata. something you will certainly have to do (much more) with your RDBMS solution.

Norgan

samthakur74
Champ in-the-making
Champ in-the-making
Thank you Norgan.
I do realize the build Vs buy argument. But what troubles me is that i felt alfresco and other CMS solutions USP was to understand content. It can provide features like searching on content (rather than description of content). It can extract metadata from a file (for certian formats)  without the developer needing to do it.
So far my application does not have these requirements. Do i still need to look at a CMS solution if i am not utilizing their most important features?

Appreciate your thoughts,
Sameer

mrogers
Star Contributor
Star Contributor
As ever your solution depends upon your requirements. 

A simple database backed app may serve you for a while.   And if your requirements are so simple that you can write your own app quicker than implementing alfresco then I'd go ahead and write my own.

But the danger is that you will spend a lot of effort and end up with far less of a system than if you had gone with a CMS in the first place.

How about using Norgan's advice that if you can build your system in less than 20 days then go with your own solution?

norgan
Champ in-the-making
Champ in-the-making
Sameer,
as simplest setup, Alfresco is nothing more than a smart network drive with checkin/checkout functions and fulltext+metadata search.

You can then add functionality as you like it. Most interesing usually will be
  • versioning

  • auditing

  • multiple access modes
and later on - when comfortable with the web clients side …
  • categories

  • workflows

  • simple custom content types & metadata
And that all still in the 20 days timeframe, if you stick with the layout and gui. you can downsize and rightsize the solutions, certainly. But more importantly - when your solutions grow, the system easily holds step and allows a way up.

Did I miss anything big, M?

Norgan

samthakur74
Champ in-the-making
Champ in-the-making
Hello MRogers and Norgan,

I do appreciate your lucid explanations and agree with them. I have a couple of more queries

1. We cannot use the current Alfresco UI. Our client demands a more custom made UI which they are comfortable with. I am planning to use Flex+ Struts with REST api calls made to alfresco. Do you see any problems with this approach?
2. Where could i get a complete list of REST api calls, so i could figure out exactly what can be done using approach described in 1.
For example: I would like to present the client with a "repository view", so when a file is uploaded the client can see exactly where the file resides.

3. I am guessing  alfresco provides me a api to store metadata which will be entered with the document.  I am also guessing there would be some way to provide/change/retrieve status's to documents as they go through their workflow. Is this correct?
For non document features, like storing announcements to be displayed on dashboard (which btw would be part of the flex UI) i guess i would still need to use a RDBMS

4. I am thinking of starting development on the community edition and as we see success switching over to the enterprise, when we need to host on the cloud. Does this sound like a fair approach?

Some of my questions might get answered by trawling through the forums. I apologise for asking first, without doing the homework. I am doing both,its just that this is urgent. Distilled knowledge always helps Smiley Happy

Thank you again,
Sameer

norgan
Champ in-the-making
Champ in-the-making
1) Go for it, but : Check the "Flexspaces" extension (see forum and "forge") for an example, how it can look. But do a crossreference on docasu and other client proofs as well. That will help you get a feel. You might even use Drupal as Frontend Smiley Happy There was a presentation on that just yesterday.


2) REST api : The wiki has a full set of developer resources and APi list, It think ( i never did a crosscheck), but for better introduction on "how To", use the http://www.ecmarchitect.com tutorials.

3) Generally : Datastorage of information: I still wonder about the efficiency of storing "content types, which do not need a DOCUMENT attached". But basically, you can define your own content types with their own sets of metadata. If performance is less the issues than it is to have it all in one place under one rule, derive your own contenttype "my:datafolder", derived from "cm:folder" and assign your set of metadata to it. This way, you could even store XML-file exports (customdeveloped!) as "archiveversions" inside the folder (Folders are not versioned!) and use Alfresco for everything. But as I said, I still wonder about the efficiency of that. Mrogers - any thoughts on that ?
Specifically : The news on the dashboad is a content of type "news message". You can store the message as XML file in the system and store the metadata as metadata Smiley Happy

4) To switch to enterprise, you have to watch out for features, which are not yet part of enterprise (Alfresco Share for one). The Community Edition is a "playground" for new features. Not all of them make it into the enterprise code. So on switching, you may have to support your own "extension".

Norgan

mrogers
Star Contributor
Star Contributor
Yes you can have nodes without content properties and we use them all the time within alfresco.     It is important functionality.     For examples folders and people are implemented this way.

While I agree it may be less "efficient" than a custom table in a hand crafted database, it has the major advantage of being compatible with the rest of alfresco.    You can for example use alfresco's rules, associations, security, policies, query engine, forms, content modeling, cmis, etc, etc.

I think there are people out there using alfresco without any "content" at all.

samthakur74
Champ in-the-making
Champ in-the-making
Thank you for all this!
regards
Sameer

jck
Champ in-the-making
Champ in-the-making
Hello,
I think modern applications require content (documents) and metadata. So, the question isn't "what kind of system do I need", but "how to use CMS and RDBMS in the same logical space?"
From my point of view, you need to start from one solution (CMS or RDBMS) and add the lacking feature. We started from Alfresco CMS and added a kind of shadow database (true RDBMS) which gives us CMS and RDBMS features with one logical design and execution space.

It works very well: you have true CMS features from one side and true relational features on the other one (with SQL joins ;-).

The entire solution, from design tools to server extension (SQL for Alfresco), is open source (GPL v3) and available on http://www.side-labs.org.

JC