SlideShare ist ein Scribd-Unternehmen logo
Enterprise 2.0 Portale mit Grails. Geht das?
Java Forum Stuttgart
04.07.2013
Manuel Breitfeld, Tobias Kraft
2
Redner
● IT-Berater bei exensio GmbH (Karlsruhe)
● Mehrere 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 KraftManuel Breitfeld
3
Agenda
Überblick Portale
Grails als Basistechnologie
Umsetzung von Portal-Modulen
Portal Anpassungen
4
Was sind Portale?
Portlets
5
Was zeichnet Portale heutzutage aus?
● Personalisierung
● Integration von Backend-Systemen
● Single Sign On
● Content Management
● Content Aggregation
● Navigation
● Theming / Layout
● Enterprise Search
● Social Networking (Enterprise 2.0)
● Collaboration
● Mobile Support
6
Relevante Portal-Spezifikationen
● JSR 168: Portlet Specification, JSR 286: 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
7
photo credit: tim.md via photopin
8
Probleme von Portalen
● Schwergewichtig
● Nach Möglichkeit alles integrieren
● Unterstützung von Standards durch Portalhersteller
● Portlet-API veraltet
● Teilweise hohe Lizenzkosten
● Testing
9
Agenda
Überblick Portale
Grails als Basistechnologie
Umsetzung von Portal-Modulen
Portal Anpassungen
10
Was ist Grails?
A Full-Stack Web (MVC) Framework
● 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
11
Groovy
● Dynamische typisierte Sprache
● Basiert auf JVM
● Zusätzliche Features zu Java
def names = ["Peter", "Manuel", "Tobias"]
println names
def shortNames = names.findAll { it.size() <= 5 }
println shortNames.size()
shortNames.each { println it }
Beispiel:
12
Rapid development
Der Standard-Weg ist konfiguriert, aber Änderungen sind möglich
● Convention over Configuration (CoC)
● Don’t repeat Yourself (DRY)
Beispiele:
● Aufbau Projekt-Struktur
● DB-Mapping
● Klassennamen
● Logging
● Autowiring
13
Aufbau eines Grails-Projektes
● Vordefinierte Projektstruktur
14
Grails Aufbau
15
GORM – für die Persistenz
● Hibernate ist der Standard
● Austausch Persistenzschicht ist möglich
● DB-Operationen erfolgen direkt am Domain-Objekt
● Queries einfach und intuitiv
Portlet.findAllByPageAndPortal(‘Home’, portalname)
PortletInst.where{
year(published) == 2013 && right != ‘public’
}
Where-Queries
Dynamic Finders
Portlet.delete()
Portlet.save(flush:true)
16
CoC-Beispiel anhand von Services
● SpringBeans als einfache POJOs
● Einfacher Zugriff über DI
● Management von Transaktionen
def portalService
def calculateMenu() {
def page = portalService.getHome()
….
}
static transactional = false
@Transactional(propagation = Propagation.REQUIRES_NEW)
def fooMethod() {…}
17
Controller und Views
● Controller
● Direkter Zugriff auf Services
● Standardmethoden wie render()
● Groovy Server Pages
● Ähnlich JSP’s
● Zusätzliche Tagslibs und Variablen
● Model-Zugriff
● Taglibs
● Integration weiterer Oberflächen-Libraries als Plugins (bspw. Vaadin, …)
18
Full-Stack und Continuous Integration
● Test
● Testdaten (Fixtures, Build Test Data Plugin)
● JUnit, Spock
● Build
● Gant / Ivy
● Gradle
● Analyse-Werkzeuge
● Cobertura
● Codenarc
● Jenkins / Hudson
19
Integrationsbeispiele
● JSON-Slurper
● File-Handling
def jsonText = '''{
"message": {
"header": { "from": "bud@spencer.com"},
"body": "Hello Java Forum Stuttgart."
}
}'''
def mail = new JsonSlurper().parseText(jsonText)
assert mail.message.body == "Hello Java Forum Stuttgart."
new File('/data/').eachFileMatch( ~".*xml" ) { f ->
if ( f.lastModified() <= yesterday ) {
f.delete()
}
}
20
JEE-Integration
Application Server
DB
Dokumenten-
Management-
System
EJB-Aufruf
grails war ejb ear
dms_if.jardms_if.jar
dms_ejb.jar
21
Was ist cool an Grails?
http://www.morguefile.com/archive/display/196579
● Runterladen und loslegen
● Groovy macht vieles kürzer und schneller
● Zahlreiche Plugins steigern die Produktivität
● Full-Stack Unterstützung / Continous Integration
● Testing
● Coverage
● Build
22
Was ist bei Grails zu beachten?
● Unsauberer Code ist schnell produziert
● Schichtentrennung
● Schwergewichtige Taglibs
● Zu viel Logik in Controllern
● Vernachlässigung der Tests (Nicht typisiert)
● Versions-Upgrades detailliert testen
23
Warum Grails für ein Portal einsetzen?
● Einfache Integration von Drittsystemen
● Schnelle Umsetzung neuer Anforderungen
● Enterprise-Fähigkeit
● Einfaches Testing
● CI-Unterstützung
24
Agenda
Überblick Portale
Grails als Basistechnologie
Umsetzung von Portal-Modulen
Portal Anpassungen
25
Tagging
● Kennzeichnung / Kategorisierung verschiedener Themen
● Funktionsübergreifendes 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
26
Tagging
27
Enterprise Suche
● Suche über mehrere fachliche Komponenten
● 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
28
Enterprise Suche
29
Content / Document Management System
● Verschiedene Inhaltstypen
● 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)
30
Content / Document Management System
31
Web 2.0 Funktionalitäten
● Blog
● Wiki
● Micro Messages
● Activity Stream
● Teilen von Dokumenten
● Kommentieren von Inhalten
● Bewerten von Inhalten (Voting)
● Integration von anderen Diensten wie Twitter
32
Web 2.0 Funktionalitäten
33
Web 2.0 Funktionalitäten
34
Personalisierung und Berechtigungen
● Spring Security als Basis
● Hierarchisches Rollenkonzept
● Anbindung von AD, CMS, DB
● Personalisierung
● Enterprise Suche
● Berechtigungen
● Page-Ebene
● Portlet-Ebene
● Navigation
● Content
35
Agenda
Überblick Portale
Grails als Basistechnologie
Umsetzung von Portal-Modulen
Portal Anpassungen
36
Portalseiten und Portlets
● Navigation und Portalseiten können
zur 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)
37
Portalseiten und Portlets
Template
Positionen im Template
Portlet-Instanzen
38
Umsetzung neuer Anforderungen
● Einfach!
1. Funktionalität in Grails umsetzen (Controller, View, Service,…)
2. Neues Portlet im Admin-Backend definieren
3. Portlet auf gewünschte Seite „ziehen“
39
Fazit
● Schnelle Entwicklung dank Grails
● Grails ist Enterprise fähig
● Tragfähigkeit in der Praxis erprobt
● Reduzierte Komplexität
Vielen Dank!
exensio Gesellschaft für Informationstechnologie mbH
Am Rüppurrer Schloß 12
76199 Karlsruhe
http://www.exensio.de
http://blog.exensio.de
http://twitter.com/exensio

Weitere ähnliche Inhalte

PDF
Kann ich mit Grails Enterprise Applikationen umsetzen?
PDF
Grails im Überblick und in der Praxis
KEY
Informatik Seminar Groovy Und Grails
PDF
GWT – Google Web Toolkit in der Praxis
PDF
Eintauchen in MVP mit GWT
PDF
GWT: Eintauchen in MVP und Internationalisierung
PDF
MVP mit dem Google Web Toolkit
PDF
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
Kann ich mit Grails Enterprise Applikationen umsetzen?
Grails im Überblick und in der Praxis
Informatik Seminar Groovy Und Grails
GWT – Google Web Toolkit in der Praxis
Eintauchen in MVP mit GWT
GWT: Eintauchen in MVP und Internationalisierung
MVP mit dem Google Web Toolkit
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript

Was ist angesagt? (20)

PPTX
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)
PDF
Zend Framework 2 feat. MongoDB
PDF
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
PPTX
JavaServer Faces 2.2 (Herbstcampus 2013)
PDF
Metadatenbasierte Validierung
PDF
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
PDF
Web Components
PDF
Ü̈ber Ant und Maven zu SBT und Gradle
PPTX
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
PDF
Query Result Caching
PDF
Progressive Web Apps mit Angular
PDF
Our way to 19c - DOAG 2020
PPTX
JSF und JPA effizient kombinieren (W-JAX 2011)
PDF
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
PDF
JSF vs. GWT? JSF und GWT!
PDF
OSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
PPT
PDF
JAX 2015 - Continuous Integration mit Java & Javascript
PDF
Web-GUIs mit Vaadin
PDF
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)
Zend Framework 2 feat. MongoDB
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
JavaServer Faces 2.2 (Herbstcampus 2013)
Metadatenbasierte Validierung
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...
Web Components
Ü̈ber Ant und Maven zu SBT und Gradle
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
Query Result Caching
Progressive Web Apps mit Angular
Our way to 19c - DOAG 2020
JSF und JPA effizient kombinieren (W-JAX 2011)
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
JSF vs. GWT? JSF und GWT!
OSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
JAX 2015 - Continuous Integration mit Java & Javascript
Web-GUIs mit Vaadin
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Anzeige

Andere mochten auch (20)

PPS
Lass Dich Verzaubern
DOCX
Fundamentos de la teria de la agencia. 1 semana
PPTX
Jesus quellen-neu
PDF
Presentación patrocinio 19ª Edición LESGAICINEMAD
PDF
biw info amtsblattmissbrauch
PDF
Forum 2003 Thyssen Krupp Presta
PPTX
Dn12 3 era_eval_presentacion_sgaa
PPTX
Taller diagrama web 2.0
PPS
Ostereier
PPTX
Prototipado y testing de usabilidad rápido - @ThinkLeanEdu / Universidad de P...
PPTX
Xybermotive Bewährte ERP und EDI Technologie - leichtgewichtig und auf Knopfd...
DOC
Las finanzas y el director financiero primera semana
PPTX
Presentacion trabajo segundo_corte
PDF
Negocio innovador y con futuro 2012 Site Talk
PPT
Camstudio
PPSX
10. poesía posterior a 1939. 4º
PDF
PDF
Buchstabe b
PPTX
Fortaleciendo mi cuerpo
PPTX
El afiche
Lass Dich Verzaubern
Fundamentos de la teria de la agencia. 1 semana
Jesus quellen-neu
Presentación patrocinio 19ª Edición LESGAICINEMAD
biw info amtsblattmissbrauch
Forum 2003 Thyssen Krupp Presta
Dn12 3 era_eval_presentacion_sgaa
Taller diagrama web 2.0
Ostereier
Prototipado y testing de usabilidad rápido - @ThinkLeanEdu / Universidad de P...
Xybermotive Bewährte ERP und EDI Technologie - leichtgewichtig und auf Knopfd...
Las finanzas y el director financiero primera semana
Presentacion trabajo segundo_corte
Negocio innovador y con futuro 2012 Site Talk
Camstudio
10. poesía posterior a 1939. 4º
Buchstabe b
Fortaleciendo mi cuerpo
El afiche
Anzeige

Ähnlich wie Enterprise 2.0 Portale mit Grails. Geht das? (20)

PDF
Skalierbare Flutter Architektur - eine Einführung
PDF
Drupal Austria Roadshow in Klagenfurt
PDF
Enterprise UI
PPTX
Notes Sharepoint Migration
PPTX
TDD für Testmuffel
PDF
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
PDF
Icinga 2009 at Nagios Workshop
PDF
XML Director - the technical foundation of onkopedia.com
PDF
MEAN SCS in der Cloud
PDF
comundus Kundenportal mit Liferay
PPT
C2 Teamwork Portal Mit Web Sphere 6.0
PDF
Yes zu NoSQL mit MongoDB für .NET-Entwickler
PPTX
JavaScript-Erweiterungen für UI und UX
PPTX
2007 - Basta!: Nach soa kommt soc
PDF
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
PDF
Portalserver Meets SOA: State of the Portal Art
PDF
Microsoft Azure Cloud mit der Sitecore Experience Platform
PPTX
SharePoint 2013 Search Driven websites
PDF
imatics FormEngine
PDF
HTML5 - presentation at W3C-Tag 2009
Skalierbare Flutter Architektur - eine Einführung
Drupal Austria Roadshow in Klagenfurt
Enterprise UI
Notes Sharepoint Migration
TDD für Testmuffel
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Icinga 2009 at Nagios Workshop
XML Director - the technical foundation of onkopedia.com
MEAN SCS in der Cloud
comundus Kundenportal mit Liferay
C2 Teamwork Portal Mit Web Sphere 6.0
Yes zu NoSQL mit MongoDB für .NET-Entwickler
JavaScript-Erweiterungen für UI und UX
2007 - Basta!: Nach soa kommt soc
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
Portalserver Meets SOA: State of the Portal Art
Microsoft Azure Cloud mit der Sitecore Experience Platform
SharePoint 2013 Search Driven websites
imatics FormEngine
HTML5 - presentation at W3C-Tag 2009

Enterprise 2.0 Portale mit Grails. Geht das?

  • 1. Enterprise 2.0 Portale mit Grails. Geht das? Java Forum Stuttgart 04.07.2013 Manuel Breitfeld, Tobias Kraft
  • 2. 2 Redner ● IT-Berater bei exensio GmbH (Karlsruhe) ● Mehrere 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 KraftManuel Breitfeld
  • 3. 3 Agenda Überblick Portale Grails als Basistechnologie Umsetzung von Portal-Modulen Portal Anpassungen
  • 5. 5 Was zeichnet Portale heutzutage aus? ● Personalisierung ● Integration von Backend-Systemen ● Single Sign On ● Content Management ● Content Aggregation ● Navigation ● Theming / Layout ● Enterprise Search ● Social Networking (Enterprise 2.0) ● Collaboration ● Mobile Support
  • 6. 6 Relevante Portal-Spezifikationen ● JSR 168: Portlet Specification, JSR 286: 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
  • 7. 7 photo credit: tim.md via photopin
  • 8. 8 Probleme von Portalen ● Schwergewichtig ● Nach Möglichkeit alles integrieren ● Unterstützung von Standards durch Portalhersteller ● Portlet-API veraltet ● Teilweise hohe Lizenzkosten ● Testing
  • 9. 9 Agenda Überblick Portale Grails als Basistechnologie Umsetzung von Portal-Modulen Portal Anpassungen
  • 10. 10 Was ist Grails? A Full-Stack Web (MVC) Framework ● 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
  • 11. 11 Groovy ● Dynamische typisierte Sprache ● Basiert auf JVM ● Zusätzliche Features zu Java def names = ["Peter", "Manuel", "Tobias"] println names def shortNames = names.findAll { it.size() <= 5 } println shortNames.size() shortNames.each { println it } Beispiel:
  • 12. 12 Rapid development Der Standard-Weg ist konfiguriert, aber Änderungen sind möglich ● Convention over Configuration (CoC) ● Don’t repeat Yourself (DRY) Beispiele: ● Aufbau Projekt-Struktur ● DB-Mapping ● Klassennamen ● Logging ● Autowiring
  • 13. 13 Aufbau eines Grails-Projektes ● Vordefinierte Projektstruktur
  • 15. 15 GORM – für die Persistenz ● Hibernate ist der Standard ● Austausch Persistenzschicht ist möglich ● DB-Operationen erfolgen direkt am Domain-Objekt ● Queries einfach und intuitiv Portlet.findAllByPageAndPortal(‘Home’, portalname) PortletInst.where{ year(published) == 2013 && right != ‘public’ } Where-Queries Dynamic Finders Portlet.delete() Portlet.save(flush:true)
  • 16. 16 CoC-Beispiel anhand von Services ● SpringBeans als einfache POJOs ● Einfacher Zugriff über DI ● Management von Transaktionen def portalService def calculateMenu() { def page = portalService.getHome() …. } static transactional = false @Transactional(propagation = Propagation.REQUIRES_NEW) def fooMethod() {…}
  • 17. 17 Controller und Views ● Controller ● Direkter Zugriff auf Services ● Standardmethoden wie render() ● Groovy Server Pages ● Ähnlich JSP’s ● Zusätzliche Tagslibs und Variablen ● Model-Zugriff ● Taglibs ● Integration weiterer Oberflächen-Libraries als Plugins (bspw. Vaadin, …)
  • 18. 18 Full-Stack und Continuous Integration ● Test ● Testdaten (Fixtures, Build Test Data Plugin) ● JUnit, Spock ● Build ● Gant / Ivy ● Gradle ● Analyse-Werkzeuge ● Cobertura ● Codenarc ● Jenkins / Hudson
  • 19. 19 Integrationsbeispiele ● JSON-Slurper ● File-Handling def jsonText = '''{ "message": { "header": { "from": "bud@spencer.com"}, "body": "Hello Java Forum Stuttgart." } }''' def mail = new JsonSlurper().parseText(jsonText) assert mail.message.body == "Hello Java Forum Stuttgart." new File('/data/').eachFileMatch( ~".*xml" ) { f -> if ( f.lastModified() <= yesterday ) { f.delete() } }
  • 21. 21 Was ist cool an Grails? http://www.morguefile.com/archive/display/196579 ● Runterladen und loslegen ● Groovy macht vieles kürzer und schneller ● Zahlreiche Plugins steigern die Produktivität ● Full-Stack Unterstützung / Continous Integration ● Testing ● Coverage ● Build
  • 22. 22 Was ist bei Grails zu beachten? ● Unsauberer Code ist schnell produziert ● Schichtentrennung ● Schwergewichtige Taglibs ● Zu viel Logik in Controllern ● Vernachlässigung der Tests (Nicht typisiert) ● Versions-Upgrades detailliert testen
  • 23. 23 Warum Grails für ein Portal einsetzen? ● Einfache Integration von Drittsystemen ● Schnelle Umsetzung neuer Anforderungen ● Enterprise-Fähigkeit ● Einfaches Testing ● CI-Unterstützung
  • 24. 24 Agenda Überblick Portale Grails als Basistechnologie Umsetzung von Portal-Modulen Portal Anpassungen
  • 25. 25 Tagging ● Kennzeichnung / Kategorisierung verschiedener Themen ● Funktionsübergreifendes 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
  • 27. 27 Enterprise Suche ● Suche über mehrere fachliche Komponenten ● 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
  • 29. 29 Content / Document Management System ● Verschiedene Inhaltstypen ● 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)
  • 30. 30 Content / Document Management System
  • 31. 31 Web 2.0 Funktionalitäten ● Blog ● Wiki ● Micro Messages ● Activity Stream ● Teilen von Dokumenten ● Kommentieren von Inhalten ● Bewerten von Inhalten (Voting) ● Integration von anderen Diensten wie Twitter
  • 34. 34 Personalisierung und Berechtigungen ● Spring Security als Basis ● Hierarchisches Rollenkonzept ● Anbindung von AD, CMS, DB ● Personalisierung ● Enterprise Suche ● Berechtigungen ● Page-Ebene ● Portlet-Ebene ● Navigation ● Content
  • 35. 35 Agenda Überblick Portale Grails als Basistechnologie Umsetzung von Portal-Modulen Portal Anpassungen
  • 36. 36 Portalseiten und Portlets ● Navigation und Portalseiten können zur 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)
  • 37. 37 Portalseiten und Portlets Template Positionen im Template Portlet-Instanzen
  • 38. 38 Umsetzung neuer Anforderungen ● Einfach! 1. Funktionalität in Grails umsetzen (Controller, View, Service,…) 2. Neues Portlet im Admin-Backend definieren 3. Portlet auf gewünschte Seite „ziehen“
  • 39. 39 Fazit ● Schnelle Entwicklung dank Grails ● Grails ist Enterprise fähig ● Tragfähigkeit in der Praxis erprobt ● Reduzierte Komplexität
  • 40. Vielen Dank! exensio Gesellschaft für Informationstechnologie mbH Am Rüppurrer Schloß 12 76199 Karlsruhe http://www.exensio.de http://blog.exensio.de http://twitter.com/exensio