Web Application Development
Introduction to application
servers, web applications and
portlets
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Outline
 Scenario
 Use Case
 Portlet Develop
 Hostname porltlet
 Catania Grid Engine API
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Scenario
JSR 168/268
JSR 168/268
JSR 168/268
JSR 168/268
Catania Science Gateway Framework
GRID
CLOUD
Local
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Cluster
Web enviroment
 Application Server (Glassfish)
 Web application
working as Portlet Container
JSR 168/268
JSR 168/268
(Liferay)
JSR
168/268
JSR 168/268
 Portlet (a custom application designed under
users needs)
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
What is an application server?
 A software framework designed to host
applications running in a web environment
 Most of them contains a service layer model
 A set of API is available for the developers to
access the application server’s functionalities
 As long as the management of the
environment is demanded to the application
server, developers can focus on the business
logic.
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Most popular application servers
http://plumbr.eu/blog/most-popular-application-servers
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
What is a web application?




An application accessed over a network
Analogy with “common” applications
User interact with them through a web-browser
A web applications can offer thousands of
services: Liferay is a web-application
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Liferay (www.liferay.com)
 Highly-configurable, scalable, open source
portal framework;
 Compatible with JSR 168/286 standards
and based on modern web 2.0
technologies;
 Liferay services currently used:
 Portal;
 CMS & WCM;
 Collaboration and “social” software
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Liferay Plugins





Portlets
Themes
Layouts
Hooks
Exts
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
What is Porltet ?
 Defined in the Java Specification Request (JSR
168/286)
 A porlet is a web component able to set a
frame portion of a web page.
 Differently from Servlet it needs a Porltlet
Container to allow the user to interact with it.
 Standard Portlet can be deployed in any Porlet
Container in case they will use standard libray.
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Generic Porlets Life Cycle
YES
NO
End of
Services?
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Generic Porltlets Interface Method
Class GenericPortlets {
init (PortletConfig);
processAction (ActionRequest,
ActionResponse);
render (RenderRequest, RenderResponse);
destroy();
doView (Request, Response);
doEdit (Reuqest, Response);
doHelp (Request, Response);
}
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Portlet Mode
 A porltet works in three
different states.
 View Mode: generate a
markup ( a portion of a
web page);
 Edit Mode: allow portlet
customisation and
setting preferences.
 Help Mode: explains
portlet functionalities.
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Action Request
Action
Request
view.jsp
processAction()
Action
Request
edit.jsp
Render
Request
doView()
edit.jsp
doEdit()
view.jsp
Render
Request
processAction()
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Render Request
Render
Request
view.jsp
doView()
view2.jsp
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Portlets
 Standard JSR168/286
 Interaction between jsp pages and java code
Application Server (Glassfish)
JSP page
<jsp:useBean
<form … >
Java code
Class <you portlet>
Extends
GenericPortlet …
<input … />
</form>
 JSP uses <form… statements to send parameters to Java code
 Java code extends class GenericPortlet overriding methods:


Init, doView, doHelp, doEdit, processAction
Java code uses 2 Classes to exchange data from/to JSPs
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Portlet files (root)
build.xml
Used by ‘ant’ to compile and
deploy the portlet
docroot/
WEB_INF/
css/
images/
js/
jsp_page_1.jsp
…
jsp_page_n.jsp
Define here JSP’s styles
JSP image files
JavaScript files
Portlet JSP pages
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Portlet files (docroot)
WEB_INF/
Used to define database and other
glassfish-web.xml
resources settings
web.xml
lib/
Jar Library directory (local scope)
Job/
Job files (Custom dir)
liferay-display.xml
liferay-plugin-package.properties
Portlet
liferay-portlet.xml
configuration files
portlet.xml
src/
Java source files
<package_name>/code.java
tld/
XML structure file
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Building environment
 Get Liferay with Glassfish
 Customising Liferay installation (database
connection)
 Get Liferay plug-in SDK
 Configuring Netbeans (optional)
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Deploying first portlet






Understanding ant scripts
Creating “hello world” portlet
Understanding portlet files
Compiling porltet
Deploying porlet
Understading portlet management on the
server
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
References
 Liferay: https://www.liferay.com
 Liferay Bundles:
https://www.liferay.com/downloads/liferayportal/available-releases
 Liferay Plugin SDK:
https://www.liferay.com/downloads/liferayportal/additional-files
 Netbeans: https://netbeans.org
 Netbeans liferay plugin:
https://contrib.netbeans.org/portalpack/
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013
Questions ?
Riccardo Rotondo
Tutorial on Science Gateways, Roma, 04.06.2013