portlet framework: the liferay way

12
Tutorial on Science Gateways, Roma, 04.06.2013 Riccardo Rotondo Portlet Framework: the Liferay way Liferay Service Builder, Portlet MVC

Upload: riround

Post on 20-May-2015

227 views

Category:

Education


3 download

DESCRIPTION

Liferay Service Builder, Portlet MVC

TRANSCRIPT

Page 1: Portlet Framework: the Liferay way

Riccardo Rotondo

Tutorial on Science Gateways, Roma, 04.06.2013

Portlet Framework: the Liferay wayLiferay Service Builder, Portlet MVC

Page 2: Portlet Framework: the Liferay way

Riccardo RotondoTutorial on Science Gateways, Roma, 04.06.2013

Outline

Motivations Model View Controller design pattern Liferay Service Builder

Page 3: Portlet Framework: the Liferay way

Riccardo Rotondo

Portlet Framework

GenericPortlet class is not the only way of developing portlet.

Several framework are nowadays available to develop portlet: Struts JavaServer Faces Spring

Tutorial on Science Gateways, Roma, 04.06.2013

Page 4: Portlet Framework: the Liferay way

Riccardo Rotondo

Liferay MVCPortlet

Make use of a subset of the classical MVC Framework

Easier to use Faster learning curve Less configuration files to deal with and

to synchronize with java sources MVC: Model View Controller paradigm

helps keeping the code tidy

Tutorial on Science Gateways, Roma, 04.06.2013

Page 5: Portlet Framework: the Liferay way

Riccardo Rotondo

Model View Controller

Tutorial on Science Gateways, Roma, 04.06.2013

Controller

View Model

Model: layer responsible to hold the data and the business logic to manipulate them. In case you use Liferay Service Builder to manage your data, it works at the model layer level.

View: layer containing the rules to display data to the users (typically the JSP pages)

Controller: layer behaving as traffic director. Determine which action will be executed according users input. Model and View layer shouldn’t communicate each other but interact with the controller

Page 6: Portlet Framework: the Liferay way

Riccardo Rotondo

Difference from the GenericPortlet

Unnecessary implementation of doView() and doEdit() and any others porlet API

Class is simpler, it contains just the action methods

In case you really want to use any portlet API they are available, MVCPorlet is a subclass of the GenericPortlet class

Tutorial on Science Gateways, Roma, 04.06.2013

Page 7: Portlet Framework: the Liferay way

Riccardo Rotondo

Portlet accessing data

Several reasons to use a database behind a portlet

Java Programming offers different approach to deal with data

Object-relation mapping framework allow database access in a robust way. Java offers Persistence API (JPA) for database access

Liferay uses Hibernate to manage all its data

Tutorial on Science Gateways, Roma, 04.06.2013

Page 8: Portlet Framework: the Liferay way

Riccardo Rotondo

Drawback in Hibernate direct usage

Development of independent portlets using Hibernate/JPA appears to work, but the runtime implications are not immediately recognizable:

• Stale caches because of multiple writers.

• Server resource consumption for multiple DB connections, memory usage for runtime copies of Hib/JPA objects.

• Synchronization issues (two portlets given new Hib/JPA config but one forgotten).

Tutorial on Science Gateways, Roma, 04.06.2013Source:

Page 9: Portlet Framework: the Liferay way

Riccardo Rotondo

The Service Builder Solution

Service Builder provides a single point to share code (DB access and business logic) to independent portlets, resolving the caching, resource, and synchronization issues.

Tutorial on Science Gateways, Roma, 04.06.2013Source:

Page 10: Portlet Framework: the Liferay way

Riccardo Rotondo

Service Builder Architecture Overview

Tutorial on Science Gateways, Roma, 04.06.2013Source:

Page 12: Portlet Framework: the Liferay way

Riccardo Rotondo

Questions ?

Tutorial on Science Gateways, Roma, 04.06.2013