38
Alexander Frommelt | adesso AG Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale

Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

Embed Size (px)

DESCRIPTION

Präsentation von der JAX 2013 zu Portalen, Portlets, REST und HTML5.

Citation preview

Page 1: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

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?

Portale Anforderungen und Beispiele

Page 4: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

Beispiele für aktuelle Portale

Page 6: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

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?

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?

Portalserver und Portlets

Page 10: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

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?

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?

Portalserver: Grundprinzip

Page 14: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

SequenceFlow Portlet

Page 15: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

Wenn alles so einfach wäre

Page 17: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

Alternative HTML5 und Rest

Page 18: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

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?

•  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?

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?

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?

Prinzip Controller Model: Rest View

Load Entries

Populate Entries

Update

Page 24: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

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?

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?

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?

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?

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?

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?

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?

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?

Fazit

Page 34: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

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?

Keep It Simple and Stupid

Page 37: Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?

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?

Security OAuth