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