Jahre Erfahrung mit der Umsetzung von Enterprise-Portalen. • Neben Java-Technologien kommt mehr das leichtgewichtige Grails- Framework zum Einsatz. • Aktuelle technische Erkenntnisse und Erfahrungsberichte werden regelmäßig auf http://blog.exensio.de/ veröffentlicht. Tobias Kraft Manuel Breitfeld
Portlet Specification 2.0 • Spezifiziert Schnittstellen zwischen Portalen und Portlets. • Portlet Programmier Modell • OASIS-Standard WSRP (1.0, 2.0) • Web Services für Remote Portlets
Install & GO! • Nahtlose Java Integration, wird auf der Java Virtual Machine (JVM) ausgeführt • Ursprünglich inspiriert von Ruby on Rails • Open Source • Grails Historie • Projekt-Beginn 2005 • Grails 1.0 (02/2008) • Grails 2.2.2 (04/2013) • Basiert auf Groovy
ist schnell produziert • Schichtentrennung • Schwergewichtige Taglibs • Zu viel Logik in Controllern • Vernachlässigung der Tests (Nicht typisiert) • Versions-Upgrades detailliert testen
Tagging • Blog Posts, Dokumente, Micro Messages, Wiki,… • Hierarchie • Gültigkeitsbereiche • Blog Post befasst sich mit anderen Themen als das Wiki • Realisiert ohne „direkte Abhängigkeit“ im Datenmodell • Entwicklung auf Basis des Taggable-Plugins
Unterschiedliche Darstellung je nach Inhaltstyp • Bild mit Kontaktdaten für Personen • Vorschau für Dokumente • Facettensuche, u.a. mit Hierarchie und Date Range • Highlighting, Autocomplete, Fuzzy Search,… • Tag Cloud zu passenden Suchbegriffen • Realisiert mit Apache Solr und Elasticsearch • Einbindung in Grails über die (angepassten) gleichnamigen Plugins
Unstrukturiert (WYSIWYG Editor), Strukturiert und Templates • Navigation innerhalb eines Kapitels („Context Navigation“) • Neben der Portal-Navigation, kann innerhalb von Inhalten eine Navigation aufgebaut werden • Workflow • Freigabe basierend auf dem Vieraugen-Prinzip • Versionierung • Inline-Editing innerhalb des Portals • Realisiert durch eine eigene Lösung (Integration von anderen CMS-Systemen wie Adobe CQ5, o.ä. möglich)
Messages • Activity Stream • Teilen von Dokumenten • Kommentieren von Inhalten • Bewerten von Inhalten (Voting) • Integration von anderen Diensten wie Twitter
Laufzeit definiert werden • Templates • Container für die Portlets • Instanzen von Portlets werden zu einer Portalseite hinzugefügt • Positionierung über definierte Container • Angabe von zusätzlichen Parametern (Portlet Preferences)