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,
- Content Aggregation – It aggregates content from individual
portlet application and shows it as a single web page which you see in previous
figure.
- 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.
- 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:
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.
- 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.
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.
Please provide you valuable comments/suggestions.
Also keep watching my blogs for some more interesting and detailed insights into portal and portlet technologies.