Liferay Portal Server - Java Forum Stuttgart 2014

Werbung
Liferay Portal Server
Java Forum Stuttgart
17.07.2014
Agenda






Kurzvorstellung ITSD
Portal-Technologien
Liferay Vorstellung
Mein erstes Portlet
Portlet- und Web-Entwicklung, die Unterschiede
Wie können vorhandene Web-Anwendungen migriert
werden?
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Wer ist ITSD Consulting?






IT Systemhaus aus OWL
Anfang 2000 gegründet
Tätigkeitsradius: bundesweit
Standorte: Minden (Hauptsitz) und Bünde
Team aus 20 IT-Experten
Positionen: Projektleitung, Analyse und Design, Moderation,
Anwendungsberatung, IT-Beratung
 Schwerpunkte:
 Open Source Softwareentwicklung mit Java
 Beratung im Bereich Enterprise-Technologien
 Umsetzung von IT-Projekten im Unternehmensumfeld
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Kompetenzen
HR-Lösungen
Stellenbeschreibung u. bewertung
Leistungsbewertung (inkl. ZV)
Portale
Web- PortalEntwicklung (z.B.
JSF 2.x)
Liferay
Personalentwicklung
Enterprise 2.0
BEM
Unternehmensportale
Geschäftsprozesse
IT-Consulting
Prozessanalyse
Fachpersonalleasing
BPMN 2.0
IT-Beratung
Umsetzung
Open Source Java
Technologien
IT-Projektleitung
HR-Workflows
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Portal
ehemaliger Haupteingang des Ernst-Ludwig-Hauses mit Freitreppe (Museum Künstlerkolonie Darmstadt)
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Was ist ein Portal?
 „Portal“ kommt vom lateinischen Wort „porta“ - die Tür bzw. das
Tor. Es bezeichnet einen besonders ausgestalteten Eingang zu einem
größeren Gebäude.
 zentrales IT-System, in dem alle Arten von Informationen
unterschiedlichsten Zielgruppen ortsunabhängig zugänglich
gemacht werden können
 Möglichkeit zur Integration von Anwendungen, Prozessen und
Diensten
 Verknüpfung und Datenaustausch zwischen heterogenen
Anwendungen (Portlets) oftmals auf einer Portalseite unter dem
"Dach" der Portalplattform
 Unterstützung von Geschäftsprozessen
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Typische Portaldienste und -funktionen
 Darstellung/Präsentation durch homogene Oberfläche zentrales ITSystem, in dem alle Arten von Informationen unterschiedlichsten
Zielgruppen ortsunabhängig zugänglich gemacht werden können.
 Personalisierung durch individuelle Anpassungen des Hintergrundes,
der Anordnung, der Größe aber auch inhaltlich der relevanten
Informationen (Maßnahmen gegen Information Overflow)
 hochentwickelte Suchmaschinen
 wichtige Informationen schnell und unkompliziert auffinden
 hochgradig skalierbar im Bezug auf Benutzeranzahl
 eine Handvoll Benutzer
 Infrastrukturdienste/Sicherheit
 zentraler Zugriff via Single-Sign-On
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Typische Portaldienste und -funktionen
 Navigation
 Steuerung und Strukturierung der Bedienung
 Benutzerverwaltung
 Rollen, Rechte, ...
 Wissens- bzw. Content Management
 Bereitstellung von Inhalten verschiedener Quellen
 Benachrichtigungen
 Übermittlung relevanter Signale an den Benutzer (Notifikation)
 Workflow Management
 Gestaltung von Arbeitsabläufen z.B. Genehmigungsprozessen, …
 Anwendungsintegration
 Kollaboration: Zusammenarbeit in virtuellen Team- oder Projekträumen
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Portale mit Unternehmensinformationen




Ankündigungen, Events, Quartalszahlen
Berichte, Nachrichten, Wetter, Aktienkurse
E-Mail, Kalender, Geschäftsanwendungen
ggf. Zugang zu kleineren Abteilungsportalen
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Architektur
 Server delegiert Anfragen an Portlet-Engine
 Portlet-Engine verwaltet Lebenszyklus der Portlets mit Aktions- und
Renderanfragen
 Portlets können Daten aus mehreren verschiedenen Quellen
beziehen
 Datenbanken
 WebServices
 andere Anwendungen
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
"marktführende" Hersteller laut Gartner





IBM (WebSphere Portal Server)
Microsoft (Office SharePoint Server)
SAP (NetWeaver Portal)
Oracle (WebCenter)
Liferay (Portal)
 Einziger Open-Source Anbieter
unter den führenden Lösungen
im Gartner Report
„Magic Quadrant for Horizontal
Portal Products“
 Auf „Augenhöhe“ mit IBM, MS,
Oracle und SAP
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Technologiestandards
 Darstellung
 HTML / XHTML
 CSS
 Integration
 WebServices
 Java EE Connector Architecture
 Portlets
 JSR 168
 JSR 286
 Web Services for Remote Portlets
 Inhalte
 RSS
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Technologiestandards
 Content Management (CMS)
 Web-based Distributed Authoring and Versioning (WebDAV)
 Content Repository for Java Technology API
 JSR 170
 JSR 283
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Vorteile







relativ hohe Benutzerakzeptanz
Verknüpfung von Informationen über Applikationsgrenzen hinweg
transparente und effiziente Prozesse
Single-Sign-On
hoher Funktionalitätsumfang von vornherein "out-of-the-box"
ausgereifte technologische Konzepte
Einhaltung von Industriestandards
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Einsatzgebiete
 B2E - Mitarbeiter/Unternehmens-Intranet
 Kommunikation und Geschäftsprozesse innerhalb der eigenen
Unternehmensinfrastruktur
 B2B - Geschäftspartner/Unternehmens-Extranet
 Kommunikation und Geschäftsprozesse mit externen
Kundenbeziehungen
 Kommunikations- und Presseplattform
 Verlags- und Publikationsplattform
 digitales Rechte Management (DRM)
 B2C - Endkunden/Verkaufs-/Vertriebsplattform
 Produktkatalog und Shop
 Online-Banking und Finanzsystem
 Bürgerportal öffentlicher Verwaltungen
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay?
Brian Chan - Founder & Chief Software Architect
 Im Jahr 2000 von Brian Chan begonnenes Projekt
 Ziel: Non-Profit Enterprise Portal Alternative
 Gründung Liferay, Inc. im Jahr 2004
 Ende 2008: Software Umbenennung in „Liferay Portal“
 Im Zuge dessen, neues Projekt: Liferay Social Office
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Was macht Liferay aus?
 Produktteile und Funktionen
 Content-Management-System
 Sozialnetzwerk
 Blog, Freunde usw.
 Web
 Trennung durch Group, Site, Organisation
 Kollaboration (Web-Zusammenarbeit)
 Versionierung, Liferay Sync, Chat, Wiki, Forum, Workflow
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Was macht Liferay aus?








Anpassbarkeit (Hooks, Themes, Ext.)
Erweiterbarkeit (Portlets)
Authentifizierung und Autorisierung über Single Sign-on (SSO)
Personalisierung und Anordnung der Web-Elemente durch die
Benutzer mittels Drag and Drop
WebDAV
Taggen und Suchen von beliebigen Inhalten
I18N (Standard-Übersetzungen für 32 Sprachen)
plattformunabhängig, skalierbar und replikationsfähig
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay CE vs. EE
CE
EE
LGPLv2
Enterprise Open Source Lizenz
Im Schnitt alle 2-4 Monate ein Release
Service Packs
Hot Fixes
Security Alerts
Einige weitere Features
24h Support
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Quellen
 Liferay.com
 Wiki, Forum, Blogs
 http://www.liferay.com/de/products/liferay-portal/tech-specs
 Jira
 issues.liferay.com
 Sourceforge Projekt
 sourceforge.net/projects/lportal
 github.com
 https://github.com/liferay/
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Erweiterungen von Liferay
 Marketplace
 Bietet Erweiterungen für EE und auch CE
 Einige von Liferay aber auch externe Anbieter
 Social Office
 „Enterprise Collaboration“
 vormals vorkonfiguriertes Liferay Portal
 heute als .lpkg Installationspaket für Liferay Portal
 neueste Version 3.0.0 setzt Liferay Portal 6.2 voraus
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Social Office
 Eigenes Theme
 Vorkonfigurierte Portlets
 Wiki
 Kalender
 Dokumenten-Bibliothek
 Forum
 Freunde
 Profil
 uvm. siehe: http://www.liferay.com/de/products/liferay-socialoffice/features
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay - Basics
 Unterstützt viele Datenbanksysteme
 IBM DB2, MySQL, Oracle, PostgresSQL, SQL Server, Sybase, (Developer
Modus: HSQLDB)
 Viele Applikationsserver und Servlet Engines
 Geronimo, GlassFish, JBoss, JOnAS, OracleAS, SUN JSAS, WebLogic,
WebSphere
 Jetty, Resin, Tomcat
 OS
 Linux (CentOS, RHES, SUSE, Ubuntu und andere), Unix (AIX, HP-UX,
Mac OS X, Solaris und andere), Windows
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Entwicklungsumgebung
 Liferay IDE
 Basis ist Eclipse
 Viele Funktionen enthalten
 Erstellung von Projekten
 TestServer Management
 Verwaltung von Projekten bzw. Erweiterung
 Liferay-SDK (Unterstützung von Ant, Maven, Ivy)
 Liferay Developer Studio (LR EE)
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Unser erstes Portlet




Liferay IDE 2.x
Liferay 6.2
JSF 2.x
Hello-World
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Administration/Konfiguration







Organisationen
Sites
Benutzer
Teams
Gruppen
Rollen
Berechtigungen
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay-Entwicklungsschnittstellen






Hooks
Portlets
Themes
Layout Templates
Liferay Frameworks
Ext
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Hooks
 Schalten sich zwischen die Liferay Funktionalitäten
 Teile vom Liferay Core durch eigene Implementierungen
überschreiben
 Besser als Ext weil
 Hot-deployable
 Undeploy möglich
 Leichter zu erstellen und zu warten
(Maintenance, Server-Update)
 Mehrere Hooks pro Server möglich
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Hooks
 Was kann ein Hook?
 Portal properties
 Language properties
 JSP‘s
 Services
 Erweiterungen bzw. Anpassungen an den Liferay Seiten
 Überschreiben von Ressourcen
 Custom Actions
 Struts Actions (old)
 Portal.properties
 Language.properties
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Services
 Liferay Service Builder
 Service wird mittels XML beschrieben
 Liferay generiert Interfaces, Implementierungen, Zugriffsklassen,
POJOs, SQL-Statements, Finder-Methoden, etc.
 Beim Deployment von Portlets legt Liferay automatisch die
benötigten Tabellen an.
 Update-Mechanismus
 Remote und lokaler Zugriff
 Liferay liefert für seine Tabellen entsprechende Zugriffsklassen
 Automatisches generieren von Web-Services bzw. JSON
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Vorteile
 Umfang vorhandener Portlets
(Wiki, Blogs, Mircoblogs, Chat, Freunde, Aufgaben, Kalender, etc.)
 Vorhanden Portets und Portal-Funktionen können einfach angepasst
werden
 riesiger Funktionsumfang
(SSO, CalDAV/WebDAV, Dokumentenmanagement, CMS,
Berechtigungskonzept, Bootstrap, Lucene, …)
 Unterstützung von JSF
 Unterstützung vieler Standards (JSR168, JSR 286, etc.)
 Große Community – Entwicklung Forenteilnehmer:
 12/2009: 11.345  03/2014: 24.525
 Enterprise 2.0 (Social Office)
 Laut Gartner ein “Leader”
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Liferay Nachteile
 Hohe Komplexität und Funktionsumfang (z.B. Berechtigungssystem)
 Qualität der vorhandener Portlets unterschiedlich
 Umsetzung vorhandener Portlets unterschiedlich
(HTML5, JSP, JavaScript, Struts, JSF, etc.)
 Eigener Service-Layer
 Unterstützung von JSF nur teilweise in den vorhandenen Portlets
 EE vs. CE
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Unterschiede: HTTP Session und Portlet Session





HTTP Session und Portlet Session
Ein Session-Objekt pro Sitzung
Bindung von Objekten an die Session
Lesen und Schreiben von Informationen
PortletSession bietet weiteren Gültigkeitsbereich (Scope)
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
HTTP Session
 ein Gültigkeitsbereich
 Zugriff aller Servlets innerhalb einer Webapplikation
 Beispiel schreiben
public class FirstServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response) {
try {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
session.setAttribute("uname", "User");
out.print("<a href='servlet2'>visit</a>");
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
HTTP Session
 Beispiel auslesen
public class SecondServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
try{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(false);
String n=(String)session.getAttribute("uname");
out.print("Hello "+n);
out.close();
}catch(Exception e){System.out.println(e);}
}
}
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Portlet Session
 basiert auf HTTP-Session
 zwei Gültigkeitsbereiche
 Application Scope
 Zugriff von jedem Portlet und/oder Servlet
 Sessionattribut mit diesem Scope auch in HTTP-Session verfügbar
 Portlet Scope
 default
 Zugriff nur innerhalb eines Portlets
 Container hängt intern PortletId an SessionKey
 somit nicht in HTTP-Session verfügbar
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Portlet Session
 Beispiel auslesen
public class SecondPortlet extends GenericPortlet {
@Override
protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
try {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
PortletSession session = request.getPortletSession();
String n = (String) session.getAttribute("uname");
out.print("Hello " + n);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
PortletRequest
 Basis-Interface stellt Portlet Client-Request bereit
 ActionRequest
 RenderRequest
 Ähnlichkeiten zu HttpServletRequest bzw. ServletRequest
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
PortletResponse
 Basis-Interface stellt Portlet Client-Request bereit
 ActionRequest
 RenderRequest
 Ähnlich wie HttpServletRequest bzw. ServletRequest
 wird im Unterschied zur ServletResponse nicht direkt an Client
gesendet
 wird stattdessen an den Portal Server gesendet
 übliche Verwendung
 encodeNamespace
 fügt einem String als Präfix den Portletnamen hinzu
 wichtig um etwa Namenskollisionen in JavaScript Variablen zu
vermeiden
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
PortletResponse
 encodeURL
 übergebener String wird zu einer kompletten URL kodiert
 test.gif -> http://www.example.com/../test.gif übergeben
durch
 createURI/createReturnURI
 instantiiert ein neues PortletURI-Object
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
HttpServlet
 1doGet()
 1doPost()
 Beispiel Servlet
public class HelloWorld extends HttpServlet {
public void init() throws ServletException {
// Do required initialization
}
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
// Inhaltstyp für Ruckgabe festlegen
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("<p>Hello Servlet World!</p>");
}
}
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
GenericPortlet





1processAction()
1doView()
1doEdit()
1doHelp()
Beispiel Portlet
public class HelloWorld extends GenericPortlet {
public void init(PortletConfig portletConfig) throws UnavailableException,
PortletException
{
super.init(portletConfig);
}
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
// Inhaltstyp für Rückgabe festlegen
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("<p class='wpsPortletText'>Hello Portal World!</p>");
}
}
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Migration: Analyse des vorhandenen Systems
 Welche Web-Technologien wurden wie eingesetzt
(JSP/Struts, JSF, etc., wurden Templates verwendet?)
 Welches Persistenzframework wurde eingesetzt?
(Hibernate/Spring, JPA, Eigenentwicklung?)
 Soll nur Liferay unterstützt werden?
 Was ist mit anderen Portal-Systemen (wie z.B. GateIn)?
 Soll weiterhin die Web-Applikation unterstützt werden?
Wenn ja warum?
 Welche Funktionen sollen/müssen ausgetauscht werden?
(Berechtigungssystem, bisherige Integrationen, etc.)
 Welche LR Funktionen sollen zukünftig genutzt werden?
(Portlets, Layout, SSO, Lucene, CMS, Wiki, etc.)
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Migration 1: Na ja, keine echte Migration…
 LR IFrame-Portlet
 Unterstützung von Auth.-Verfahren (Basic, Form)
 Trotzdem oft Anpassung der Web-Anwendung notwendig
 Individuelles IFrame-Portlet entwickeln
 Beseitigung von Darstellungsproblemen
 Bessere individuelle Parameter-Übergabe (z.B. User-Name, GruppenName, etc.)
 Zugriff auf LR-Umgebung
 Bsp: BigBlueButton
 Web Services for Remote Portlets (WSRP)
(nur geeignet, wenn andere Anwendung schon im Portal läuft)
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Neues Portlet: Frontend anpassen




Seiten-Aufbau von LR zeigen
Anpassung der xhtml oder JSP Seiten
Header, Content, Footer
Css reduzieren
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Implementierungen austauschen
 Servlet-Api gegen Portlet-Api austauschen
PortletRequest request = (PortletRequest)facesContext.getExternalContext().getRequest();
PortletResponse response = (PortletResponse)facesContext.getExternalContext().getResponse();
PortletContext context = (PortletContext)facesContext.getExternalContext().getContext();
 Service-Schicht anpassen
 Implementierung austauschen
 z.B. zur Ablage von Dokumenten
 z.B. Lucene-Indexer
 DAO-Schicht austauschen?
 nicht unbedingt notwendig
 abhängig von der Architektur
 Datasource von LR verwenden
 Connection-Pool
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Berechtigungssystem?
 Implementierung austauschen
 Action-Permission sind unproblematisch
 in portlet.xml eintragen
 Model-Permissions sind schwieriger
 Berechtigung werden beim Speichern des Models festgelegt Portlet
Scope
 Hinzufügen von neuen Rollen/Rechten etc. aufwendig
 Aber danach: Gute Performance!
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Vorteile vom Portal nutzen






Kalender, Blogs, Aufgaben, Aktivitäten
Permissions, Scopes etc.
Volltext-Suche (Lucene)
Dokumentenmanagement
SSO
Portlet-Navigation anstatt Faces-Navigation
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Vielen Dank für Ihre
Aufmerksamkeit
Ihr Ansprechpartner
Frank Schlinkheider
Geschäftsführung, Projektleitung & Anwendungsberatung
ITSD Consulting GmbH
Lindenstr. 44
32423 Minden – Germany
Mail: [email protected]
Fon: +49 - 571 - 934 152 10
Fax: +49 - 571 - 934 152 19
Liferay Portal Server
Java Forum Stuttgart - 17.07.2014
Herunterladen