Skip to main content

empulse zeigt Enterprise Video Integration auf der Liferay DevCon 2014 in Darmstadt

Die Location der Liferay DevCon 2014 war das Kongresszentrum „Darmstadtium“ in Darmstadt. Die moderne Architektur war ein toller Rahmen für beide Konferenztage, vollgepackt mit zahlreichen spannenden Vorträgen. Das Haupt-Thema war natürlich Modularität und OSGi in Verbindung mit der für nächstes Jahr angekündigten Version Liferay 7. Hier möchte ich nun kurz meine Highlights der DevCon vorstellen.

Übersicht

Enterprise Video Streaming mit Liferay und MovingIMAGE24

Mein besonderes Highlight war natürlich der Vortrag meines Kollegen Benjamin Seiller. Er hat unsere Enterprise Video Streaming Lösung mit Liferay und MovingIMAGE24 in technischer Hinsicht vorgestellt. Die Berliner Firma MovingIMAGE24 (MI24) bietet eine Video-Streaming Lösung speziell für Unternehmen an, die konform zu deutschem Datenschutzrecht ist und durch einen Token-Mechanismus Videos gesichert ausspielt. Über die Web-Oberfläche „VideoManager“ können MI24 Kunden Videos in beliebigen Formaten hochladen und dort bequem in Channels verwalten. Zu jedem Video können umfangreiche Meta-Daten gepflegt werden. Der Video Player kann ebenfalls bequem über den VideoManager an das CI/CD des Kunden angepasst werden. Die Auslieferung der Videos über den Player erfolgt abhängig vom Endgerät automatisch als Flash oder HTML5 Variante und die Qualität ist angepasst an die zur Verfügung stehenden Bandbreite.

In seinem Vortrag hat Benjamin gezeigt, wie wir die MI24 SOAP-API in Liferay integriert haben und dabei die Vorteile von beiden Systemen nutzen. Dabei werden die Meta-Daten der Videos aus MI24 abgefragt und für jedes Video ein Liferay Web Content erstellt. Das hat den großen Vorteil, dass die Video Daten auch direkt über die Portal-Suche auffindbar sind, genau wie andere Web Contents auch. Die Videos selbst werden natürlich nicht in Liferay importiert. Wir integrieren im Web Content neben den Meta-Daten nur den Player-Code, der dann das Video über MI24 streamt. Für das Streaming nutzt MI24 das Edge-Network von Akamai, somit ist die Verfügbarkeit und Bandbreite weltweit sichergestellt. Das besondere bei der Player-Integration ist der Token-Schutz. Dabei wird beim Aufruf einer Portal-Seite mit Video Content im Hintergrund automatisch ein SOAP-Request zu MI24 abgesetzt, der einen Player mit One-Time-Token als Antwort liefert. Über diesen Mechanismus lassen sich Videos gegen externe Verwendung oder Copy/Paste der Video-URL schützen und z.B. nur in einem Intranet anzeigen.

Benjamin zeigt die Video Integration von MovingIMAGE24 mit Liferay. 

Benjamin zeigt die Video Integration von MovingIMAGE24 mit Liferay. 

Gerade im Business Umfeld bietet unsere Integration eine einfache Möglichkeit, Portale wie z.B. Intranet oder Extranet mit geschützten Videos auszustatten. Dabei können Redakteure wie gewohnt mit Web Content Display oder Asset Publisher die Videos in Portal-Seiten integrieren, da sie wie gewöhnlicher Web Content in Liferay zur Verfügung stehen. Diese Video Lösung konnten wir bereits erfolgreich im Mitarbeiter-Portal „Extranet“ der Deutschen Post DHL einsetzen.

Endlich richtig modular: Liferay 7 kommt mit OSGi unter der Haube

Bisher basierte Liferay auf einer Service-orientierten Architektur mit der Möglichkeit, Features und Applikationen in Form von Portlets bereitzustellen. Jedoch gibt es bei dieser Architektur in der Praxis häufig Probleme beim Deployment mit Abhängigkeiten bzw. funktioniert die Hotdeploy-Funktion nicht wirklich zuverlässig. Auch die Anpassung von Liferay Core-Features über Hooks oder Ext-Plugins zieht häufig Probleme nach sich, insbesondere bei Upgrades auf neuere Versionen. Mit Liferay 7 wird nun endlich OSGi als zugrunde liegende Architektur in die Tat umgesetzt. OSGi spezifiziert eine modulare Architektur, die es erlaubt, zur Laufzeit neue Module (sogenannte Bundles) einzuspielen, zu aktualisieren oder auch zu entfernen. Dabei werden Abhängigkeiten zwischen verschiedenen Bundles automatisch aufgelöst und dabei auch die Versionierung berücksichtigt. Im Liferay-Kontext bedeutet dies, dass mit Liferay 7 tatsächlich einzelne Portlets, Themes, Hooks, Templates etc. ohne Neustart des Application-Servers eingespielt, aktualisiert oder wieder entfernt werden können. Dadurch können in Zukunft auch Liferay Core-Features wesentlich besser genutzt und auch gezielter und angepasst werden. Nicht benötigte Standard-Features können einfach weggelassen werden und belasten den Server nicht unnötig. In Summe wird der gesamte Deployment-Prozess wesentlich komfortabler und am Ende schlanker und schneller! Auch das Upgrade auf neuere Versionen sollte mit OSGi wesentlich besser funktionieren, vor allem, weil Upgrades dann wirklich punktuell über entsprechende Bundles eingespielt werden können. Ich bin wirklich schon sehr gespannt auf Liferay 7!

Audience Targeting: Schon mit Liferay 6.2 zielgruppenspezifische Inhalte ausspielen

Verwaltung von Regeln im Audience Targeting Portlet

Verwaltung von Regeln im Audience Targeting Portlet

Bereits in der aktuellen Liferay 6.2 können zielgruppenspezifische Inhalte mit dem Audience Targeting Portlet ausgespielt werden. Dazu können Zielgruppen auf Basis von Regeln definiert werden. Das Portlet liefert schon eine ganze Reihe von Regeln mit, die direkt genutzt werden können. Z.B. Attribute die vom Browser übergeben werden: Browser Typ und Version, Betriebssystem oder Endgerät. Weiterhin können Profil Attribute von angemeldeten Nutzern verwendet werden, wie Alter, Geschlecht, Rolle oder Zugehörigkeit zu einer Site oder Organisation. Auch können Regeln über die besuchten Seiten oder Web Content angelegt werden, um darüber z.B. das Interesse eines Nutzers anhand seines Klickpfades zu bestimmen.

Neben einfachen Regeln können auch Kampagnen definiert werden. Kampagnen steuern die Content Darstellung für bestimmte Zielgruppen innerhalb eines definierten Zeitraums und über eine Priorität, die für jede Kampagne hinterlegt wird.

Um nun Inhalte (Assets) auf Basis der Regeln oder Kampagnen auszuliefern gibt es 3 neue Portlets, die auf den Portal Seiten eingesetzt werden können:

  • User Segment Content Display: Zeigt ausgewählte Assets pro Zielgruppe an
  • User Segment Content List: Zeigt eine Liste von Assets an, die mit der Zielgruppe assoziiert wurden
  • Campaign Content Display: Zeigt ausgewählte Assets pro Kampagne an

Um das ganze Thema abzurunden, kann für jede Regel oder für jede Kampagne ein Report abgerufen werden. Der Report visualisiert z.B. wie oft ein bestimmter Inhalt von einer bestimmten Zielgruppe aufgerufen wurde. Somit kann man sehr gut nachverfolgen, wie erfolgreich eine Regel bzw. eine Kampagne ist.

Das Audience Targeting steht sowohl für die kostenlose Community Edition (CE) als auch die kostenpflichtige Enterprise Edition (EE) zur Verfügung. Audience Targeting wurde bereits auf OSGi Architektur entwicklelt, so dass man hierbei auch schon mit Liferay 6.2 in den Genuss der OSGi Vorteille kommen kann. So lassen sich über OSGi-Extensions sehr einfach individuelle Regeln ergänzen.

Community: Neue Plattform für Entwickler

Für Entwickler gibt es ab sofort eine neue Plattform: Das Liferay Developer Network. Unter dev.liferay.com kann man nun gezielt nach Themen suchen oder selbst beitragen. Das schöne daran ist, das Beiträge über GitHub gepflegt werden, so dass zum einen direkt eine Versionierung vorhanden ist, zum anderen kann so die Qualität der Inhalte verbessert werden. Die neue Plattform ist sehr strukturiert aufgebaut, so kann z.B. jeder Zeit sehr einfach zwischen den Dokumentationen der verschiedenen Liferay Versionen hin und her geschaltet werden.

Die neue Plattform gliedert sich in 4 Bereiche:

  • Discover: Die Liferay-Dokumentation mit Bearbeitung über GitHub und einfachem Wechsel zwischen den Versionen.
  • Develop: Einsteiger Guides, Tutorials und Links zur API Doku, Taglibs, JS & CSS.
  • Distribute: Infos zur Bereitstellung von Apps im Marketplace und FAQs dazu.
  • Participate: Infos und Guidelines, wie man als Entwickler zu Liferay beitragen kann (z.B. Bugfixes, Features, Übersetzungen, Dokumentation).
Das neue zu Hause für Entwickler: dev.liferay.com

Das neue zu Hause für Entwickler: dev.liferay.com

DevOps Best Practices: Liferay Monitoring mit Logstash, Kibana, Elasticsearch und New Relic

In seinem tollen Vortrag zur Verwendung des ELK-Stack (Elasticsearch, Logstash, Kibana) in Verbindung mit Liferay hat Brett Swaim typische Fragen und Probleme beleuchtet, die im produktiven Betrieb auftreten:

  • Wie kann ich Probleme frühzeitig erkennen?
  • Wie kann ich Statistiken zur Performance und Erreichbarkeit meiner Liferay Installation erhalten?
  • Wie kann ich in einem Cluster-Setup separate Server-Logs in eine Gesamtübersicht zusammenführen?
  • Wie kann ich ein übergreifendes und umfassendes System-Monitoring in Echt-Zeit gewährleisten?

Brett hat in seinem Vortrag die Tools aus dem ELK-Stack vorgestellt und gezeigt, wie man sämtliche Log-Files von Apache, Liferay usw. in einer zentralen Elasticsearch Engine in strukturierter Form ablegen und dann mittels der Kibana UI analysieren kann. Zusätzlich empfiehlt Brett auch den Einsatz von „New Relic“, einem Cloud Service, der sämtliche Daten aus der Java Virtual Machine und dem darunterliegenden Betriebssystem in einem Web Interface zur Analyse bereitstellt.

Die von Brett gezeigten Beispiele waren beeindruckend. So konnte er beispielsweise in einem Liferay-Cluster von 12 produktiven Maschinen bei HP diverse Performance Probleme nur durch die Visualisierung der zentral zusammengeführten Logfiles aufdecken. Viele Probleme, die vorher nicht identifiziert werden konnten oder einfach in der Masse der Log-Einträge untergegangen waren, sind mithilfe des ELK-Stack und New Relic einfach aufzuspüren und zu beheben. Und das in Echt-Zeit.

Liferay Screens: Unterstützung für native mobile App Developer

Liferay Screens ist ein Baukasten-System für native iOS-Apps und soll zukünftig auch für Android zur Verfügung stehen. Native mobile Apps können mithilfe von Liferay Screens sehr schnell und einfach umgesetzt werden, wobei die Liferay Web Services als Backend genutzt werden. So sind in Xcode neue Views verfügbar, die einfach per Drag & Drop verwendet und miteinander verknüpft werden können. Dabei wird automatisch die Validierungslogik der Liferay Backend Services verwendet. Als Beispiel wurde die Erstellung einer sehr einfachen Login-App gezeigt. Der Login-Screen wurde über das Liferay Screenlet praktisch automatisch erstellt mit allen benötigten Formular-Komponenten wie Username, Passwort, Submit-Button. Danach wurde die Login-View mit einer zweiten View verknüpft, die dann z.B. Inhalte aus Liferay anzeigen kann, wenn der Login erfolgreich war. Die gesamte Logik zur Authentifizierung und Validierung der Daten erfolgt automatisch im Hintergrund über die Liferay Webservices.

Kontext-sensitives editieren mit dem AlloyEditor

Nachdem Yahoo die Weiterentwicklung seines JS-Frameworks YUI eingestellt hat, wird in Zukunft bei Liferay wieder auf jQuery gesetzt. Nichtsdestotrotz wurde die Oberfläche des neuen AlloyEditor noch auf AlloyUI/YUI3 umgesetzt. Allerdings ist schon der gesamte AlloyEditor Core unabhängig von der UI, so dass Entwickler auch eine eigene UI z.B. auf Basis von jQuery umsetzen können.

Der AlloyEditor ist Kontext-sensitiv, d.h. er wird immer genau an der Stelle angezeigt wo sich gerade der Cursor befindet. Weiterhin werden auch nur die Bearbeitungsfunktionen angezeigt, die im aktuellen Kontext Sinn machen. Bei Markierung eines Wortes werden z.B. nur Buttons für fett, kursiv, unterstrichen und Überschrift-Formatierungen angezeigt. Dadurch wird natürlich eine ganz neue Arbeitsweise ermöglicht und verhindert vor allem das viele Scrollen bei längeren Texten. Weiterhin können mit dem AlloyEditor Bilder per Drag & Drop vom Desktop direkt in den Text gezogen werden, ebenso können z.B. YouTube Videos direkt inline eingebunden werden. Als kleines Schmankerl wurden dann noch die von Instagram bekannten Filter für Fotos und Videos gezeigt, sowie die Speech-to-Text Funktion, die zumindest in englischer Sprache beim Live-Demo erstaunlich gut funktioniert hat.

Fazit

Mein persönliches Fazit: eine sehr gelungene DevCon mit sehr guten Vorträgen und guten Gesprächen und Austausch in den Pausen. Nicht zu vergessen auch das Abendprogramm mit Pinball-Turnier! Die DevCon 2014 hat gezeigt, dass Liferay sich nicht nur in Sachen Usability weiterentwickelt, sondern auch an der Zukunftsfähigkeit der zugrundeliegenden Kernfunktionen und Architektur gearbeitet wird. Der Umbau von Liferay auf eine wirklich modulare OSGi Architektur ist ein großer Schritt in die richtige Richtung. Ich bin sehr gespannt auf die finale Version von Liferay 7 und werde gespannt die weiteren Milestone Releases verfolgen und testen. Ich freue mich bereits jetzt schon auf die DevCon und das Liferay 7 Release im nächsten Jahr.