File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Java in General and the fly likes how to create content management system in java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "how to create content management system in java" Watch "how to create content management system in java" New topic
Author

how to create content management system in java

Punit Jain
Ranch Hand

Joined: Aug 20, 2011
Posts: 1001
    
    2
hello everyone, i want to create a content management system in java, can anyone tell me from where should i start??
what are the things i should think about to create a cms or a powerful cms..
Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
That's a broad question that can't really be answered in forum posts. I suggest to look at a few Java CMS, maybe install them to get an idea of what's involved and to play around with what they can do. Here are a few possibilities: http://java-source.net/open-source/content-managment-systems. The more widely used ones are Alfresco, OpenCMS, Magnolia and dotCMS.
Punit Jain
Ranch Hand

Joined: Aug 20, 2011
Posts: 1001
    
    2
well thank you for your response, one more thing i want to now, number of times i saw the most widely used cms (drupal, wordpress, joomla) and all are written in php, so should i go with php or java?
Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
That depends on your requirements for this project about which we know nothing. Note that these requirements could be functional as well as non-functional.
Punit Jain
Ranch Hand

Joined: Aug 20, 2011
Posts: 1001
    
    2
well as such i m not doing this project, as any assignment/project which is given to me..
i m doing this for my learning exercise, or i want to make a cms which is really usable to anyone.
Matthew Brown
Bartender

Joined: Apr 06, 2010
Posts: 4490
    
    8

Well, if you're doing it as a learning exercise, then write it in the language you want to learn in.
Jeff Verdegan
Bartender

Joined: Jan 03, 2004
Posts: 6109
    
    6

Punit Jain wrote:hello everyone, i want to create a content management system in java, can anyone tell me from where should i start??


A "How do I make Complex Application X?" question has nothing to do with Java, or any language. Before you can even begin to think about anything related to any particular language--or even what language(s) you'll use to develop this system, you need to lay some groundwork first.

  • You'll need a Definition of what a CMS is--or at least what it means to you.
  • You'll need Features, Use Cases, and Requirements.
  • You'll need a high-level pictures of what the Architecture will look like--that is what the highest-level independent pieces will be (database, app and/or web servers, message bus, fat client vs. web app, etc.) and how they'll interact.
  • You'll need to decide which pieces you're going to Obtain already built, what you're going to Develop yourself, and what you'll need to do to Integrate those pieces.
  • Once you know where you're going to be writing code, either to develop your own home-grown pieces or for the integration of existing pieces, then you need at least some amount of Design that tells you what code modules you'll be creating.
  • Then you can start developing your system.


  • The last item or two are the only ones that have anything to do with coding or the Java language. As we move further up the list, we get into existing Java technologies--libraries, frameworks, etc.

    Two things worth noting:

    1) This applies to any software you want to create and any language you want to use to create it, not just Java and not just a CMS.

    2) You don't can move down the list to the next level before you've completely finished the previous level, and come back and revisit it later. That is, you can--and should--take an iterative approach, rather than a strict waterfall approach. Nonetheless, you'll need at least some idea of the bigger picture before you can move on to the smaller ones.

    Beyond that, if you want any more specific help, you'll need to ask a more specific question than, "How do I write a CMS?"
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    Thanks for a good explanation, as you said:

    You'll need a high-level pictures of what the Architecture will look like--that is what the highest-level independent pieces will be (database, app and/or web servers, message bus, fat client vs. web app, etc.) and how they'll interact.


    Any resource for this??
    one more thing i want to know
    is knowledge servlet's, jsp's, and databases is sufficient to code a cms??
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4659
        
        5

    Why reinvent the wheel? There are lots of CMS out there, open source, free, well supported, etc.

    Why not write something that is unique, rather than implementing yet another CMS?
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2

    Why not write something that is unique, rather than implementing yet another CMS?


    that i also want to do, but don't know what??
    any idea, any suggestion please??
    Tim Moores
    Rancher

    Joined: Sep 21, 2011
    Posts: 2408
    That begs the question: if you can't think of anything that you'd like to develop, why do you want to develop at all?
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2

    That begs the question: if you can't think of anything that you'd like to develop, why do you want to develop at all?


    well if i got some kind of idea, that makes me to think much better, i think...
    anuja Salunkhe
    Greenhorn

    Joined: Sep 29, 2012
    Posts: 1
    hey punit .... i have exactly the same question what you had...
    is the knowledge of jsp, servlrts and Database sufficient to develop
    CMS....
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    anuja Salunkhe wrote:hey punit .... i have exactly the same question what you had...
    is the knowledge of jsp, servlrts and Database sufficient to develop
    CMS....


    Thanks anuja, so where you reached, is that knowledge is sufficient?
    Ulf Dittmer
    Marshal

    Joined: Mar 22, 2005
    Posts: 42913
        
      68
    "CMS" is an extremely broad term, since "content" can range from very little to very much. Simple CMSes may not even use a DB, but instead store to the file system. For example, the wiki here on JavaRanch uses the filesystem to store its pages, with a Lucene index to speed up searches.
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2

    Simple CMSes may not even use a DB, but instead store to the file system. For example, the wiki here on JavaRanch uses the filesystem to store its pages,


    why is it so?
    although databases have several advantages over file system?
    Ulf Dittmer
    Marshal

    Joined: Mar 22, 2005
    Posts: 42913
        
      68
    They also have drawbacks - there's much more to install and administer than with a file system. That overhead may not be justified for what additional benefit they offer. As an example, the JavaRanch wiki only has a few hundred pages; even with ten times as much, a file system could easily handle it. And we use an in-memory Lucene index for searching, which is much more flexible (and faster) than a DB could be.
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    ohk.
    but if data is big, what you think what would be better database or file system?
    as i think database would be much better.
    Jeff Verdegan
    Bartender

    Joined: Jan 03, 2004
    Posts: 6109
        
        6

    Punit Jain wrote:ohk.
    but if data is big, what you think what would be better database or file system?
    as i think database would be much better.


    Why? What specific needs of JavaRanch are you aware of that would be met better by a database if the site were bigger?

    Which one is "better" depends on issues that Ulf touched on above, among other things. How much acquisition, setup and administration expense are you willing to bear? What are your requirements for the kinds of searches and the speed of their responses? What kinds of relationships do you need to model? At what level of granularity do you need to manipulate the data?

    As with almost anything, it's impossible to say whether X is "better" than Y without a rather long list of requirements, constraints, and trade-offs.
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    well if data is huge, with file system, as far as i know, it will be big difficulty to maintain that data, as compared to databases where data is at centralized location.
    also if we want to restrict some of data to the end user, again it seems to be difficult with file.
    also integrity issues, everything we need to do using programming.
    off course cost is much, but if cost is not an issue, databases are better, i think.
    Jeff Verdegan
    Bartender

    Joined: Jan 03, 2004
    Posts: 6109
        
        6

    Punit Jain wrote:well if data is huge, with file system, as far as i know, it will be big difficulty to maintain that data


    Why? What are the specific requirements that JavaRanch has regarding "maintaining the data" that will be hard to meet with a file system, and why will it be hard to meet them?

    , as compared to databases where data is at centralized location.


    Why do you think it's not centralized on a file system? There will be some number of root directories (that's where things are centralized) under which are possibly subdirectories and then the files, all named in a way appropriate to some common access scheme. Just like a DB-based approach has some number of root DBs, which in turn contain tables, columns, and rows.

    also if we want to restrict some of data to the end user, again it seems to be difficult with file.


    What do you mean by this, and why do you think it will be difficult with a file system? The end user will have no visibility over how our data is stored, and we can restrict it however we want at the application level or using whatever tools the storage mechanism provides, if appropriate.

    also integrity issues, everything we need to do using programming.


    Why? We don't have to write integrity code for a DB, because we obtain a DB that already manages that for us. Are you certain that there are no existing CMS or lower-level file-system utilities we can obtain that will manage our data integrity issues? Or that a decent RAID system with an appropriate backup procedure is not sufficient? Of course, nobody wants to lose data, but again, there are tradeoffs. How likely is it that there will be a loss? How much will that lost cost? How much is it worth to protect against it?

    And exactly what are the data integrity requirements of JavaRanch and exactly how much programming is needed to handle them?

    off course cost is much, but if cost is not an issue, databases are better, i think.


    Sorry, but you haven't really provided a convincing argument as to why. You didn't provide concrete answers for the questions I brought up a few posts ago. And cost is ALWAYS an issue.

    All I'm trying to say is what I've already said: Which one is a better fit depends on a lot of things that are specific to the individual situation.

    For instance, where I work, there is a large amount of data that we store in flat files. Probably at least tens of GB, maybe hundreds, spread across hundreds or thousands of directories probably millions of files, and it's growing constantly--probably hundreds of new files created every minute, maybe thousands. A database would not make sense here. It would add too much overhead, and probably would not meet our latency requirements, and the structure and access patterns of this data are simple enough that the relational aspect of a DB is of no real benefit in managing them.
    Ulf Dittmer
    Marshal

    Joined: Mar 22, 2005
    Posts: 42913
        
      68
    Jeff Verdegan wrote:What are the specific requirements that JavaRanch has regarding "maintaining the data" that will be hard to meet with a file system

    I think the question is not about anything in JavaRanch, but in general. It seems I confused people by giving a concrete example of software that runs here
    Jeff Verdegan
    Bartender

    Joined: Jan 03, 2004
    Posts: 6109
        
        6

    Ulf Dittmer wrote:
    Jeff Verdegan wrote:What are the specific requirements that JavaRanch has regarding "maintaining the data" that will be hard to meet with a file system

    I think the question is not about anything in JavaRanch, but in general. It seems I confused people by giving a concrete example of software that runs here


    I know, but I'm deliberately trying to push it back to the concrete example that came up. I was starting with Punit's statement along the lines of, "If the data is huge, a database would be better." As I pointed out, by itself, you can't make that judgment simply on how much data you have. The only way that statement can be upheld is if we have a concrete example where we've answered all the important questions, and now we're changing one variable. That's part of the point I'm trying to make, though it seems I'm not making it very clearly.
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    ohh, seems that i need to study more on this, so far as a student i never though this much factors while selecting any storage system.
    Jeff Verdegan
    Bartender

    Joined: Jan 03, 2004
    Posts: 6109
        
        6

    Punit Jain wrote:ohh, seems that i need to study more on this, so far as a student i never though this much factors while selecting any storage system.


    I may have confused you and made things more complicated than they need to be, in order to drive home my point. So I'll back up a bit and try to simplify it.

    When you make a blanket statement like "Databases are better than file systems when there's a lot of data," that's an overly simplistic view. There are usually other factors that have to be considered, and each situation is different. I was just trying to get you to understand that, but I may have gone a bit far afield.

    And it is true that dealing with larger volumes of data often goes along with choosing a DB over a simple file system. However, it's not usually only the volume that drives that decision. When we have more data, that data also tends to have more complex structure and relationships, and that's the main area where a relational DB shines. Also, when we have a larger volume of data, things like transactions tend to be more important than if we're dealing with a smaller number of items, which, again, are a strength of relational DBs.

    So, yes, many times when we have a large amount of data to manage, a relational DB is the appropriate tool. But it's important to be aware of other factors, and to weigh the various requirements of each case.

    I hope that's a little clearer.

    And finally, yes, gathering, defining, and understanding the requirements of a system and using those requirements to make architecture decisions can be a complicated task that is difficult to do without a lot of experience.
    Kemal Sokolovic
    Bartender

    Joined: Jun 19, 2010
    Posts: 825
        
        5

    I used this book last year for one of my projects, so I would suggest you take a look at it if you want to proceed with the idea. It gives enough theoretical background on the topic as well as the implementation details.


    The quieter you are, the more you are able to hear.
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    Jeff Verdegan wrote:
    Punit Jain wrote:ohh, seems that i need to study more on this, so far as a student i never though this much factors while selecting any storage system.


    I may have confused you and made things more complicated than they need to be, in order to drive home my point. So I'll back up a bit and try to simplify it.

    When you make a blanket statement like "Databases are better than file systems when there's a lot of data," that's an overly simplistic view. There are usually other factors that have to be considered, and each situation is different. I was just trying to get you to understand that, but I may have gone a bit far afield.

    And it is true that dealing with larger volumes of data often goes along with choosing a DB over a simple file system. However, it's not usually only the volume that drives that decision. When we have more data, that data also tends to have more complex structure and relationships, and that's the main area where a relational DB shines. Also, when we have a larger volume of data, things like transactions tend to be more important than if we're dealing with a smaller number of items, which, again, are a strength of relational DBs.

    So, yes, many times when we have a large amount of data to manage, a relational DB is the appropriate tool. But it's important to be aware of other factors, and to weigh the various requirements of each case.

    I hope that's a little clearer.

    And finally, yes, gathering, defining, and understanding the requirements of a system and using those requirements to make architecture decisions can be a complicated task that is difficult to do without a lot of experience.


    yeah it's much more clear now.
    Punit Jain
    Ranch Hand

    Joined: Aug 20, 2011
    Posts: 1001
        
        2
    Kemal Sokolovic wrote:I used this book last year for one of my projects, so I would suggest you take a look at it if you want to proceed with the idea. It gives enough theoretical background on the topic as well as the implementation details.


    Thanks, is any pdf or indian edition is available is available of this book?
    Kemal Sokolovic
    Bartender

    Joined: Jun 19, 2010
    Posts: 825
        
        5

    Punit Jain wrote:Thanks, is any pdf or indian edition is available is available of this book?


    As for downloading pdf (suppose you're talking about downloading it free of charge) I cannot say anything, since it would be copyright violation. Google a bit to find out if there is translated edition in your native language.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: how to create content management system in java