This week's book giveaway is in the Agile and Other Processes forum.
We're giving away four copies of DevSecOps Adventures: A Game-Changing Approach with Chocolate, LEGO, and Coaching Games and have Dana Pylayeva on-line!
See this thread for details.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Devaka Cooray
  • Tim Cooke
Sheriffs:
  • Rob Spoor
  • Liutauras Vilda
  • paul wheaton
Saloon Keepers:
  • Tim Holloway
  • Tim Moores
  • Mikalai Zaikin
  • Carey Brown
  • Piet Souris
Bartenders:
  • Stephan van Hulst

how to create content management system in java

 
Ranch Hand
Posts: 1143
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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..
 
Saloon Keeper
Posts: 7645
178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 1143
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Saloon Keeper
Posts: 7645
178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 1143
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Bartender
Posts: 4568
9
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, if you're doing it as a learning exercise, then write it in the language you want to learn in.
 
Bartender
Posts: 6109
6
Android IntelliJ IDE Java
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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??
     
    Rancher
    Posts: 4804
    7
    Mac OS X VI Editor Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator


    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
    Saloon Keeper
    Posts: 7645
    178
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator


    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...
     
    Greenhorn
    Posts: 1
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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?
     
    Rancher
    Posts: 43081
    77
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    "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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator


    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
    Rancher
    Posts: 43081
    77
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 6109
    6
    Android IntelliJ IDE Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 6109
    6
    Android IntelliJ IDE Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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
    Rancher
    Posts: 43081
    77
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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
    Posts: 6109
    6
    Android IntelliJ IDE Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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
    Posts: 6109
    6
    Android IntelliJ IDE Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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.
     
    Bartender
    Posts: 825
    5
    Python Ruby Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    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.
     
    Punit Jain
    Ranch Hand
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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
    Posts: 1143
    5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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
    Posts: 825
    5
    Python Ruby Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    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.
     
    It looks like it's time for me to write you a reality check! Or maybe a tiny ad!
    We need your help - Coderanch server fundraiser
    https://coderanch.com/wiki/782867/Coderanch-server-fundraiser
    reply
      Bookmark Topic Watch Topic
    • New Topic