Announcement Announcement Module
Collapse
No announcement yet.
Planning web portal - new to Spring Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Planning web portal - new to Spring

    Hello Spring users,

    I am currently planning a web portal and would like to use Spring as a server side framework, but have never used it before. Although I have several years of experience in medium and large scale web development, most of it has been on the LAMP stack. For this project I would like to switch to a java-based environment since I think java is better suited to keep a large code base coherent.

    The planned portal system consists of these main aspects:
    • complex content management (articles and media)
      • rights management for most items (pages, media, groups)
      • upload and editing
      • i18n
    • user participation (comments, PMs, content upload)
    • eventual seamless forum integration (I don't want to write one myself)
    By reading articles and hearsay together with my experience and resources I chose the following core components for my architecture:
    • Linux as operating system
    • Apache Tomcat as web server
    • Spring as server side framework
    • Google Web Toolkit as client side framework
    As you see there is no specific data base system included, I am not yet sure what to use but tending toward using MySQL because I have worked with it before.

    My questions to you are now:

    Do these combinations make sense to you?
    Do you have experince with similar projects?
    Do you know good tutorials and/or examples, tips&tricks for Spring in general or Spring related to one of my goals?
    Which parts of Spring should I use, and for what part of the portal?

    Is there an existing (and good) user/rights mangement system for Spring (as used for websites)?
    I am not yet too familiar with the integration of java objects with DBMS'. For instance, I'm worried about the lookup and search performance. Are there places where I can read more about it?

    I am interested in anything you could offer about any of my ideas!

    Thank you for your help!

    Aragos
    aka Peter Schmitt

  • #2
    architecture

    Linux is a good server choice. Very easy to maintain. Tomcat will work as an application server as long as the user load isn't too heavy. My employer tried to use Tomcat as the backend server for an ERP system (Lawson) and reporting server (BOXI), and had all kinds of scalability issues. But for small - medium loads it should be fine. Keep in mind too that if you are doing a portal application you will need a portal container such as Jetspeed.

    As far as application architecture goes, we are using:

    * Hibernate for the database -> Java object mapping
    * Spring to manage business logic, transactions, etc.
    * Spring's PortalMVC as the frontend framework for our portlets

    Google's framework looks nice, but you are taking a risk using it as it is not widely used. I personally would stick with more common solutions for the front tier such as Struts, Spring's Web/Portal MVC, etc., mixed with JSPs and if necessary an Ajax toolkit such as ajaxtags.

    jh

    Comment


    • #3
      Have you considered Liferay [www.liferay.com]? It's an open source portal solution built on Spring, Hibernate, and the Java Content Repository. I haven't used it myself but I've installed it and it looks great.

      Comment


      • #4
        THank you for all your tips, I greatly appreciate them!

        Originally posted by jhh09 View Post
        Keep in mind too that if you are doing a portal application you will need a portal container such as Jetspeed.
        Originally posted by mstralka View Post
        Have you considered Liferay [www.liferay.com]? It's an open source portal solution built on Spring, Hibernate, and the Java Content Repository. I haven't used it myself but I've installed it and it looks great.
        I would be happy to use such pre-built solutions, including the portlet specifications; however, everytime I look at these portal applications, I feel as if I yield a lot of control and flexibility to them. My ideas of what my application should be able to do (and not to do) and how the UI interaction works are already quite specific.
        Do you know if it is easy to modify Jetspeed or Liferay?

        Originally posted by jhh09 View Post
        Google's framework looks nice, but you are taking a risk using it as it is not widely used. I personally would stick with more common solutions for the front tier such as Struts, Spring's Web/Portal MVC, etc., mixed with JSPs and if necessary an Ajax toolkit such as ajaxtags.
        That GWT is not (yet?) widely used is certainly true. I have some experience working with it though, and am able to use my own prebuilt libraries. I will check if I can integrate it with Spring Web, that might be a good combination.

        Peter Schmitt

        Comment


        • #5
          Originally posted by mstralka View Post
          Have you considered Liferay [www.liferay.com]? It's an open source portal solution built on Spring, Hibernate, and the Java Content Repository. I haven't used it myself but I've installed it and it looks great.
          Unfortunately, it only looks great on the first sight. Don't look behind the facade. It is not really built on Spring or Hibernate. It's built on Struts. Liferay's MainServlet actually extends Struts's ActionServlet! They don't know anything about dependency injection, everything happens via static methods.

          Sample: CompanyServiceUtil provides static methods for doing business stuff. Internally it uses a static method getService() on the CompanyServiceFactory. The CompanyServiceFactory uses a BeanLocatorUtil, so every service is actively looked up and the names of the dependencies have to be known.

          It's similar for Hibernate. SQL code is built programmatically and passed to Hibernate's SQLQuery.

          Another extremely awkward thing is DTO pooling!

          JSPs are full of Java code.

          So adapting Liferay to your needs is anything than trivial if you don't want to reinvent the wheel (copy & paste).

          Sorry, but I can't recommend Liferay at all, at least as soon as you want to do more than just using it (i.e. the portlets it provides).

          Jörg

          Comment


          • #6
            Good to know - I hadn't dug into Liferay yet - looks like I'll look elsewhere for Spring-based portal solutions.

            Comment

            Working...
            X