Hello There !!! Please check out some cool stuff I've developed from "My Apps" section on the right hand side of this page. I would really appreciate your feedback/suggestions/reviews/comments.
Want To Search Something Else? Just Google It !

Wednesday, September 28, 2011

An Introduction to Portal and Portlets



With the great invention of internet, a new era of software called web or website had begun.  As the time passed, web technologies grew up from just simple static HTML to very powerful web technologies and frameworks like JSP, Servlets, DHTML, XML, CSS, Javascript , AJAX, Spring, Struts, Flash, Dreamweaver etc to provide extremely rich web applications having stunning look and feel, awesome GUI features, great level of user interactivity, graphics and animation based presentation etc.  

The revolution didn’t stop and continued to take the web technologies a step further which introduced a new term called Web Portal or simply Portal.  In today’s world we keep on hearing worlds like Portals, Portlets almost every day. Surely, the questions arise in our mind: What is this portal? What is portlet? How’z it different from a regular web application?

I will try to explain all these terms in context of Java/J2EE.

Let’s being with What is a Portal ?

A portal is a web based application that –commonly- provides personalization, single sign on, content aggregation from different sources and hosts the presentation layer of Information Systems.

Aggregation means integrating information(content) from various different sources (by sources, it means web applications) in a single web page.

A portal may also have sophisticated personalization features to provide customized content to users. Portal pages may have different set of portlets creating content for different users.

What is a Portlet?

A portlet is a Java technology based web component, managed by a portlet container.  They are pluggable user interface components which works very similar to web applications (i.e. processes requests and generates dynamic content) and make up the presentation layer of entire Portal.

The content generated by a portlet is also called a fragment. A fragment is a piece of markup (e.g. HTML, XHTML, WML) which is aggregated by portal with fragments generated by other portlets to form a complete portal page which is then presented to end user. The lifecycle of a portlet is managed by the portlet container.

Web clients interact with portlets via a request/response implemented by the portal. Normally, users interact with content produced by portlets, for example by following links or submitting forms, resulting in portlet actions being received by the portal, which are forwarded by it to the portlets targeted by the user's interactions.

The content generated by a portlet may vary from one user to another depending on the user configuration for the portlet.


Huh !!! Too much of techi-talk right? Alright, let me try to explain it with simple example.

I believe, most of all have used i-Google(http://www.google.com/ig). Now that’s perfect example of a Portal.

Following figure shows what’s explained above:



Here entire application i-Google can be seen as a Portal and each individual application (Gmail, Today’s Horoscope, Google Translate etc) running on the page (which you see in above figure) can be seen as individual Portlets.

Here if we see, i-Google provides all the features described in the Portal definition earlier.  For example,

  1. Content Aggregation – It aggregates content from individual portlet application and shows it as a single web page which you see in previous figure.

  1. Single Sign-On – Once you log-in to i-Google. That’s it. You don’t need to log-in again to any portlet application which uses the same authentication platform. For example, Gmail as shown in previous figure.

  1. Personalization – Each user can change the look and feel, color scheme etc according to his own choice by changing the theme.

Good enough !  From so many techie definitions and example, now we can conclude that a Portal application is made-up of three main building blocks:

  • Portal  
  • Portlets
  • Portlet Container

We already saw what is Portal and Portlets. But what is Portlet Container?  Well here it is:

As we understood that a portlet is nothing but another type of java technology based web component, we definitely need a container where it can be hosted and run similar to web containers where we host the normal web applications (war files). 

A portlet container runs portlets and provides them with the required runtime environment. A portlet container contains portlets and manages their lifecycle. It also provides persistent storage for portlet preferences. A portlet container receives requests from the portal to execute requests on the portlets hosted by it.

A portlet container is not responsible for aggregating the content produced by the portlets. It is the portal who takes care of it.

A portal and a portlet container can be built together as a single component of an application suite or as two separate components of a portal application.

Putting it all together, following figure gives a high level view of what a portal application consists of and how a request is processed. 


Here if you see, HTTPRequest from the client is further divided into two sub categories: Render Request and Action Request. (I will explain these with more details in my future blogs on Portlets. Keep reading my blogs  :-) )

Hope this blog was helpful in understanding basics of Portal and Portlet technologies. 

Please provide you valuable comments/suggestions. 

Also keep watching my blogs for some more interesting and detailed insights into portal and portlet technologies. 

30 comments:

  1. Thank you so much! This is very helpful and the diagrams make the topic very understandable too.

    ReplyDelete
  2. Thanks a lot. Nice explanation with example about portal and portlets. But these two figures are not visible or missing.

    ReplyDelete
  3. Thanks for giving this useful article.... Thanks for sharing....
    HTML training in chennai

    ReplyDelete
  4. This comment has been removed by a blog administrator.

    ReplyDelete
  5. The website is looking bit flashy and it catches the visitors eyes. Design is pretty simple and a good user friendly interface.
    training courses

    ReplyDelete
  6. Learned a lot of new things from your post!Good creation ,It's amazing blog Java Online Training Hyderabad

    ReplyDelete
  7. Thanks for your valuable information.Ajax explanation was very useful. best aws training in chennai | aws course fees details

    ReplyDelete
  8. Thanks for sharing such an informative post...

    ReplyDelete
  9. Nice blog..! I really loved reading through this article. Thanks for sharing such
    an amazing post with us and keep blogging... Java Training in Chennai | RPA Training in Chennai

    ReplyDelete
  10. Thanks for sharing such an informative post...

    ReplyDelete
  11. Thanks for sharing such an informative post...

    ReplyDelete
  12. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it... Java Training in Chennai | RPA Training in Chennai

    ReplyDelete
  13. Thanks for posting useful information. You have provided a nice article, Thank you very much for this one... Java Training in Chennai | Pega Training in Chennai

    ReplyDelete
  14. Excellent post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.
    Best Devops online Training
    Online DevOps Certification Course - Gangboard
    Best Devops Training institute in Chennai

    ReplyDelete
  15. I appreciate that you produced this wonderful article to help us get more knowledge about this topic.
    I know, it is not an easy task to write such a big article in one day, I've tried that and I've failed. But, here you are, trying the big task and finishing it off and getting good comments and ratings. That is one hell of a job done!



    Selenium training in bangalore
    Selenium training in Chennai
    Selenium training in Bangalore
    Selenium training in Pune
    Selenium Online training

    ReplyDelete
  16. Excellant post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.
    python Training in Chennai
    python Training in Bangalore
    python Training in Pune

    ReplyDelete
  17. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
    python Training in Chennai
    python Training in Bangalore
    python Training in Pune

    ReplyDelete
  18. Good Infromation
    "Sanjary Academy provides excellent training for Piping design course. Best Piping Design Training Institute in Hyderabad,
    Telangana. We have offer professional Engineering Course like Piping Design Course,QA / QC Course,document Controller
    course,pressure Vessel Design Course, Welding Inspector Course, Quality Management Course, #Safety officer course."
    Piping Design Course in India­
    Piping Design Course in Hyderabad
    Piping Design Course in Hyderabad
    QA / QC Course
    QA / QC Course in india
    QA / QC Course in Hyderabad
    Document Controller course
    Pressure Vessel Design Course
    Welding Inspector Course
    Quality Management Course
    Quality Management Course in india
    Safety officer course

    ReplyDelete
  19. The post is totally awesome! Bunches of incredible information and motivation the two of which we as a whole need! Likewise prefer to appreciate the time and effort you put into your blog.

    Digital Marketing Training in Chennai

    Digital Marketing Course in Chennai

    ReplyDelete