wozu portlets – reichen html5 und rest nicht aus für moderne portale?
DESCRIPTION
Präsentation von der JAX 2013 zu Portalen, Portlets, REST und HTML5.TRANSCRIPT
![Page 1: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/1.jpg)
Alexander Frommelt | adesso AG
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale
![Page 2: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/2.jpg)
Alexander Frommelt [[email protected]] Competence Center Leiter IT Consulting Versicherungen, adesso AG Tätigkeitsschwerpunkte: Ø Konzeption und Implementierung von Kunden- und
Vertriebsportalen, Moderne Portaltechniken Ø Serviceorientierte Architekturen Ø Beratung von Versicherungen und Finanzdienstleistern
Ø adesso gehört zu den führenden IT-Dienstleister im deutschsprachigen Raum
Ø Beratung und individuelle Softwareentwicklung
Ø Mehr als 1000 Mitarbeiter
Ø Zu den wichtigsten Kunden zählen die Allianz, Hannover Rück,
Ø Union Investment, Westdeutsche Lotterie, Zurich Versicherung, DEVK und DAK
![Page 3: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/3.jpg)
Portale Anforderungen und Beispiele
![Page 4: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/4.jpg)
Enterprise Information Portal
• Baukastensystem zur Integration von Informationen, Benutzern und Prozessen über Unternehmensgrenzen hinweg.
• Sicherer und zentraler Einstiegspunkt meist in Form einer webbasierten Benutzerschnittstelle.
• Vorgesehen für die Aggregation und Personalisierung von Informationen durch applikationsspezifische Komponenten.
• Dezentralisierte Inhaltsverteilung und Inhaltsverwaltung, die Informationen stets aktuell halten.
![Page 5: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/5.jpg)
Beispiele für aktuelle Portale
![Page 6: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/6.jpg)
Häufig gestellte Anforderungen an Portale
• 24 x 7 Hochverfügbarkeit • Stabilität • Skalierbarkeit • Elastizität • Release Update im laufenden Betrieb • Service Orientierung • Single Sign On • Individualität (White Label, Wiedererkennung, …) • Multi – Kanalanbindung • Time to Market
![Page 7: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/7.jpg)
Herausforderungen (1) • Application Integration
– Oberflächen – Geschäftslogik – Datenbank
• Berechtigung (Authentifikation, Authorisation)
• CMS Integration • Application Security
(Schutz der Anwendung vor Angriffen) • Wiederverwendung
JSR 286: Portlet 2.0 Spec
JSR 127: Java Server Faces
JSR 301: Portlet Bridge Spec.
Login User commandLogin Portlet
Login URL
Teilnehmernummer und Passwort
PreLogin
Authentificate
PostLogin
Redirect
WAS Login
Suchen und Validieren TNR und PasswortGruppen ermitteln
Portal Login
WAS Security Subject
Portal Startseite
JAAS Login Portal_LTPA
WAS Security
BenutzerregistrierungFederated Repository
Teilnehmerverwaltung
LDAP
·∙·∙·∙ JAAS login·∙ Session anlegen·∙ Laden Portalbenutzer
XML Zugriff
PUMA/VMM
Login Einstiegspunkte
Benutzerdefinierter Repository Adapter
Scripting
Legende
WebSphere Komponente Implementierung
![Page 8: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/8.jpg)
Herausforderungen (2) • Betrieb / Freigabeprozesse • Qualitätsmanagement
– Prozesse – Quality Gates
• Business Analyse • Styleguide • Releasemanagement
![Page 9: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/9.jpg)
Portalserver und Portlets
![Page 10: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/10.jpg)
Typische Funktionen von Portal-Servern
• Anwendungsintegration / Prozessunterstützung
• Content-Management-System / Information Retrieval
• Individuelle Anpassung der Arbeitsumgebung
• Collaboration / Groupware
• Security / Single-Sign-On / Benutzerverwaltung
![Page 11: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/11.jpg)
Eigenschaften Portlets • Von einem Portlet Container gemanaged • Erzeugen dynamischen Content • Generieren nur Markup Fragmente
Das Portal aggregiert die Markup Fragmente in komplette Portal Seiten
• Können nur über von Portlet API erzeugte Urls aufgerufen werden
• Feineres Request Handling: Action, Event, Render und Resource Request
• Können vielfach auf einer Portal Seite existieren
![Page 12: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/12.jpg)
Eigenschaften Portlets • Können Konfigurations und Benutzerspezifische Informationen
speichern • Portlet Session (zwei Scopes): speichert Transient Data
![Page 13: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/13.jpg)
Portalserver: Grundprinzip
![Page 14: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/14.jpg)
SequenceFlow Portlet
![Page 15: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/15.jpg)
Ziele von Portlets • Service Orientierte Architektur widerspricht
monolithischen Applikationen • Einzelne Services werden zu Applikation orchestriert • Orchestrierung benötigt komponentenorientierte
Benutzerschnittstellen für die Services • Portlets bieten entsprechendes UI Modell • Portlet UI Komponenten können in größere UI‘s mit
konsistentem Look and Feel aggregiert werden
![Page 16: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/16.jpg)
Wenn alles so einfach wäre
![Page 17: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/17.jpg)
Alternative HTML5 und Rest
![Page 18: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/18.jpg)
Unterteilung in Komponenten
Unterteilung einer Portalseite in mögliche Content Komponenten
• Großteil der Komponenten wird durch marktgängige kommerzielle und OpenSource CMS Systeme bereits abgedeckt.
• Verwaltung der Content-Seiten erfolgt innerhalb des CMS-Systems.
• Content Aggregation bzw. Layouting erfolgt über die Mechanismen des CMS-Systems
• CMS Systeme sind meisst schon vorhanden, selten werden Webseiten noch direkt erstellt.
![Page 19: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/19.jpg)
Beispiel Suche (mit Portlet)
• Search Engine stellt Rest Schnittstelle zur Verfügung
• Skalierung wird durch Portalserver bestimmt
• Portal-State wird im Portalserver gehalten
• Portalserver bringt CMS mit
Portal Server
Search Engine
Browser
CMS
FW
CSS JS HTML
Portlet
![Page 20: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/20.jpg)
• HTTP ist Stateless per Definition • Für einen geführten Weg durch eine Anwendung
benötigen wir einen Server State oder eine Kopie auf der Client-Seite in Form einer eindeutigen Session
• Die Verteilung von Sessions ist komplex und schränkt die Skalierbarkeit ein
• AJAX wird für Usability und Resource Optimierung gebraucht
![Page 21: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/21.jpg)
Beispiel Suche (Rest + JS)
• Rest Schnittstelle Search Engine wird direkt angesprochen
• JS, CSS, Templates können im Browser gecached werden
• Search Engine kann unabhängig von CMS skaliert werden
• Datenübertragung minimal (JSON Daten)
• Bestehendes CMS kann wiederverwendet werden
Search Engine
Browser
CMS
HTTP/ REST / JSON
FW
CSS JS HTML
![Page 22: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/22.jpg)
Session Handling und Client Control
Prinzip
Business Service
Model
Controller
View View View
![Page 23: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/23.jpg)
Prinzip Controller Model: Rest View
Load Entries
Populate Entries
Update
![Page 24: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/24.jpg)
function SearchResultListCtrl($scope, $http) { $http.get('search/result.json').success(function(data) { $scope.searchResults = data; }); }
[ { “titel": “RestServices”, “beschreibung": “Beschreibung von RestServices", ... }, ... ]
<ul class=„searchResults"> <li ng-repeat=„entry in searchResults | filter:query "> {{entry.titel}} <p>{{entry.beschreibung}}</p> </li> </ul>
View
Model
Controller
Beispiel AngularJS
![Page 25: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/25.jpg)
RESTful Roy Fielding Dissertation 2000: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
Grundprinzipien: • Resource Based • Uniform Interface • Stateless • Cacheable • Client-Server • Layered System • Code on Demand
![Page 26: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/26.jpg)
REST und JSON ein gutes Team • HATEOS (Hypertext As The Engine Of Application
State) – Response enthält Links auf Actions die auf der aktuellen
Resource ausgeführt werden können
{ "members": [ { "href": "http://example.org/coll/1" }, { "href": "http://example.org/coll/2" }, { "href": "http://example.org/coll/3" }, .... { "href": "http://example.org/coll/N" }, ], "next": "http://example/coll?page=2" }
![Page 27: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/27.jpg)
Was brauchen wir fürs Frontend
• HTML 5 • CSS 3 • JavaScript • Javascript Template Engine
z.B. Dust JS, mustache, … • JS Framework
z.B.: AngularJS, Jquery, Javascript MVC, Bootstrap, …
![Page 28: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/28.jpg)
HTML 5 – Featurecluster
Semantics
Offline & Storage
Device Access
Connectivity
Multimedia
Graphics & Effects
Performance & Integration
CSS 3
= HTML + CSS + Javascript
![Page 29: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/29.jpg)
Responsive Design • Anpassungsfähiges Layout an
– Displaygröße – Plattform – Ausrichtung
• Bestandteile von Responsive Design – flexible Layout-Raster – anpassungsfähige Grafiken – dynamische Skalierung
• Ein Website deckt mit verschiedenen Layouts alle Endgeräte ab
![Page 30: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/30.jpg)
Single Sign On • Bspw. Single Sign On mit Oauth 2.0 • Verbreitetes, Token Basiertes Authentifikations
Protokoll • Facebook, Google, Cloud Foundry stellen z.B. OAuth
Authentification bereit • Jboss Resteasy unterstützt Oauth
![Page 31: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/31.jpg)
BrowserCache Put it together
App Server
App Server
Browser Browser Storage
JS JS
JS
HTML
...
HTML
Web Server … Web
Server
HTTP/ REST / JSON
HTML
FW
FW
![Page 32: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/32.jpg)
Skalierbarkeit und Performance • Stateless Ansatz erleichtert die Skalierbarkeit • Updates können einfach produktiv gehen. • Keine spezielle Session Datenbank oder sonstige
Vorkehrungen für Fail Over im Cluster Betrieb notwendig
• Übertragene Datenmenge ist deutlich geringer • Vorsicht: Latenzzeiten haben erheblichen Einfluss
auf Performance
![Page 33: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/33.jpg)
Fazit
![Page 34: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/34.jpg)
Fazit • Frontends für Service Orientierte Architekturen können rein auf
Web Technologie basieren • Bestehende CMS Systeme können wieder verwendet werden. • Single Sign On kann z.B. mit Oauth realisiert werden • Skalierbarkeit des Gesamtsystems ist leichter gewährleistet • Die niedrigere Komplexität des Gesamtsystems erhöht die
Verfügbarkeit. • Bestehende Caching Mechanismen werden ausgenutzt. • Rest Services können auch als PHP, Python, … bereitgestellt
werden. • Der Anwendungs-State wird auf dem Client gehalten.
![Page 35: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/35.jpg)
Ausblick • NodeJS
– Content Aggregation auf dem Server – Wiederverwendung des JSCodes
• NoSQL Datenbanken Bieten häufig REST/JSON Interfaces für Datenzugriff
• Nutzung von Public und Private Clouds
![Page 36: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/36.jpg)
Keep It Simple and Stupid
![Page 37: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/37.jpg)
Vielen Dank für Ihre Aufmerksamkeit.
Alexander Frommelt adesso AG T +49 89 189316-22 Line of Business Insurance F +49 89 189316-99 Leiter Competence Center IT Consulting M +49 178 2808023 Landsberger Str. 110 E [email protected] 80339 München www.adesso.de
![Page 38: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?](https://reader034.vdokument.com/reader034/viewer/2022051513/5479acfe5806b567048b4747/html5/thumbnails/38.jpg)
Security OAuth