Liferay Inter Portlet Communication (IPC) is
mechanism to communicating one Portlet to other Portlet.
JSR 168/ Portlet 1.0 have very limited capability to provide Liferay
Inter Portlet Communication (IPC) and its used Portlet Session to share data among
Portlets.
JSR 286/Portlet 2.0 has added many ways to support Liferay
Inter Portlet Communication (IPC) and it provides better approaches than what JSR
168 is already provided.
Liferay Portal will support all types of Inter Portlet Communication
(IPC) that JSR 168 and JSR 286 provided.
When IPC comes into picture we can have two types of Portlets
that is Sender Portlets and Receiver Portlets another way we can say Producer
Portlets and Consumer Portlets.
Sender/Producer Portlet will send some data that is sharable to
other Portlets and
Consumer/Receiver/Listener Portlets are will receive data which
already shared by producer/Sender Portlets. IPC can made with in the page or
across the portal
Some of IPC mechanism only possible with in the page means all Portlets
should be in the same and some other can support IPC among all Portlets
which are in different pages or we can say across portal Portlets.
We have following Types of IPC Mechanisms which Liferay portal
can support.
- Portlet Sessions IPC
- Public Render Parameters IPC
- IPC Events
- Client Side IPC with AJAX
- Client Side IPC with Cookies
From JSR 168/Portlet 1.0 we have feature of Inter Portlet
Communication with Portlet Sessions.
Each Portlet have its own session that is called Portlet
Session and session data won’t be shared with other Portlets.
To make Inter Portlet Communication with help of Portlet
session we will make Portlet session as public so that data will be shared in
other Portlets.
Available from JSR 168 and carried to JSR 286
Communication can be possible with in the page and across
the portal
Public Render Parameters are the one of the way to make
Inter Portlet Communication among the Portlets and these Portlets may be in
same page or different pages in the portal.
Public Render Parameters we will define specific parameter
in the Portlet with help of that data will be carried from one Portlet to other
Portlet and these Public Render Parameters accessible by specific Portlet where
we already defined these parameters.
IPC we have two categories of Portlets Sender Portlet and
Receiver Portlets. Sender Portlet will send some data or push some data then
receiver Portlet will receive the data and will process subsequent steps.
Available from JSR 286
Communication can be possible with in the page and across
the portal
IPC Events is one of the ways to make Inter Portlet
Communication among the Portlets and these Portlets may be in same page or different
pages in the portal.
IPC Events we have two categories of Portlets Event Producer
Portlet and Event Listener Portlets. Producer Portlet will send some data or
push some data then Listener Portlet will receive the data and will process
subsequent steps.
We can have one Producer and Multiple Consumer Portlet will
listen the event and process subsequent steps.
Available from JSR 286
Communication can be possible with in the page and across
the portal
Client Side Inter Portlet Communication is one of the ways
in IPC this can apply the Portlet which reside in same page. Because Client
side IPC will uses java script to communicate that’s why all Portlet which
participated in IPC need to be in same page.
Liferay already have some java script library to implement
client side IPC in Portlet Development.
Available from JSR 286
Communication can be possible with in the page only
Client Side IPC with Cookies
Same Like Client Side IPC with AJAX we can also achieve IPC through
browser cookies and data will be stored in cookies and this will be accessed by
other portlets and this have some limitation with respect data storage and
security wise means I can store very limited data and sometime browsers may
disable cookies then communication will be failed among Portlets.
Available from JSR 286
Communication can be possible with in the page only
Suggestible
priority order as per my knowledge
- IPC Events
- Public Render Parameters IPC
- Portlet Sessions IPC
- Client Side IPC with AJAX
- Client Side IPC with Cookies
0 comments :
Post a Comment