Transcript Titolo
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