dnug 2013 herbstkonferenz / ibm connections: funktionale erweiterung mit vorhandenen...
DESCRIPTION
Integration von vorhandenen (produktiven) Notes/Domino-Anwendungen in eine IBM-Connections Umgebung unter Nutzung der IBM Connections OpenSocial API.TRANSCRIPT
Social Collaboration 39: "Vernetzte Informationswelt"
www.dnug.de
IBM Connections:
funktionale Erweiterungen mit
vorhandenen Notes-Anwendungen
IBM Collaboration Solutions: Deep Dive (Session 5.2)
Jens Ribbeck, ULC Business Solutions GmbH
www.dnug.de
Jens Ribbeck
Der Referent:
Jens Ribbeck
IBM Notes / Domino seit 1999
Anwender, Entwickler und Administrator
Schwerpunkte:
Prozessmanagement, Integration, Schnittstellen
www.ulc.de
ULC Business Solutions GmbH
IBM Premier Business Partner
Full Service Provider,
IBM Collaboration Software
www.dnug.de
Jens Ribbeck
• kommen traditionell aus der Lotus Notes/Domino-Umgebung (inkl. Entwicklung),
• haben eine Vielzahl und Vielfalt von Domino-Anwendungen im Einsatz,
• sind üblicher Weise stark E-Mail-orientiert,
• betrachten neue Systeme i.d.R. aus aktueller Praxissicht
• sind (noch) nicht bei Notes 9.x angekommen
• sind (aktuell) wenig investitionsbereit bei Domino
Unsere (IBM-) Kunden:
www.dnug.de
Jens Ribbeck
• Betrachtung von IBM Connections aus der Praxis-Sichtweise unserer Kunden
• Schaffung von Mehrwerten für die Benutzer bei der Integration bei der Nutzung von Domino-Anwendungen in IBM Connections
• IBM ist der Reiseanbieter aber wir sind die Reiseleiter und dürfen unseren Kunden nicht wegfahren !
Unsere (Reise-) Ziele
www.dnug.de
Jens Ribbeck
• Teilweise sehr lange Lebenszyklen (bedingt durch hohe Abwärtskompatibilität)
• Masken, Ansichten, Formeln, Lotusscript
• Aktuelle Technologien nur bei Neuentwicklungen
• Notes Client steht (noch) im Vordergrund
• regelmäßig hohe Sicherheitsanforderungen (z.B. Banken)
Domino-Anwendungen (Merkmale)
www.dnug.de
Jens Ribbeck
• Workflow-getriebene Anwendungen
– Einfache Organisationsprozesse
– Komplexe Kern-Anwendungen (z.B. CRM)
• Klassische Dokumentensammlungen
• Content-Management-Systeme
• …
Domino-Anwendungen heute (Cluster)
www.dnug.de
Jens Ribbeck
• Workflows immer Bedarf an Informationsübermittlung haben und
• bei Workflows immer die Menschen und ihre Aufgaben im Zentrum stehen.
Workflowanwendungen bieten sich für Integration an, da
= DAS entspricht der Philosophie der Social Networks / IBM Connections
www.dnug.de
Jens Ribbeck
• Workflow-Anwendung
• In verschiedenen Kundenszenarien im Einsatz
• Browser-Schnittstelle vorhanden
• Flexibel anpassbar
ULC.Formular- & Prozessmanager als Beispiel für die Betrachtungen:
www.dnug.de
Jens Ribbeck In
tegr
atio
nst
iefe
Agenda
www.dnug.de
Jens Ribbeck
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft Grundlagen
Eine gute Nachbarschaft gelingt nur, wenn die Grundlagen dafür geschaffen werden. Der Nutzer und seine Anforderungen müssen im Fokus stehen!
Für eine erfolgreiche Einführung von IBM Connections sind Entwickler und Admins gleicher- maßen gefordert!
Entwickler Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 1. Benutzerverwaltung
Voraussetzungen für „gute Nachbarschaft“: • Synchronisierte Benutzerprofile • Domino-Adressbuch möglichst Quelle für Connections Benutzer-
Verzeichnis (LDAP) • Domino-Benutzer müssen eine eingetragene E-Mail Adresse haben
(Key)
Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 2. Infrastruktur
Infrastruktur: • Fehlerfreie Netzwerkkonfiguration (u.a. Routing, DNS) • Domino-Server und Connections müssen für Clients (Browser)
erreichbar sein • Bei Bedarf: Firewall-Konfiguration anpassen • Domino-Server „spricht“ HTTP(S) -> HTTP-Task muss laufen • Synchronisierte Zeiten (möglichst auch keine verschiedenen
Zeitzonen)
Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 3. Single Sign On (SSO)
Benutzer wollen sich nicht mehrfach anmelden, daher: SSO • Standard IBM: LTPA (Lightweight Third-Party Authentication) • Alternative Systeme sind möglich (z.B. Kerberos + LTPA, 3rd-
party Lösungen) • LTPA ausgehend von IBM Connections (Websphere) einrichten
und in Domino integrieren • URL‘s von IBM Domino und IBM Connections (Websphere)
müssen der gleichen Domain angehören (domino.ulc.de und connections.ulc.de
Siehe auch: http://public.dhe.ibm.com/software/dw/websphere/SSOPortal-DominoFinal.pdf
Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 3. Single Sign On (SSO), LTPA einrichten in der Websphere ISC
Admin
Sicherheit → Globale Sicherheit: • Authentifizierungsverfahren auswählen
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 3. Single Sign On (SSO), LTPA einrichten in der Websphere ISC
Sicherheit → Globale Sicherheit → LTPA: • Zeitlimit definieren • Schlüssel für weitere Verwendung im
Domino exportieren • Wird im Profil des Deployment-
Managers auf dem Websphere Server gespeichert (../AppServer/Profiles/Dmgr01/)
Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 3. Single Sign On (SSO), LTPA-Konfiguration in Domino hinterlegen
Sicherheit → Globale Sicherheit → LTPA: • Zeitlimit definieren (wie im Websphere) • Schlüssel aus Websphere in
Webkonfiguration importieren • Domain muss identisch sein
Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 3. Single Sign On (SSO), Probleme
Sicherheitsbetrachtungen: • Logout nicht vollständig möglich (LTPA-Token bleibt
erhalten), problematisch in Multiuser-Umgebungen • Benutzer-Sperre bei Fehlversuchen nicht eindeutig • Passwortwechsel muss möglich sein (Synchronisation von
Profiles mit LDAP)
Entwickler
Admin
www.dnug.de
Jens Ribbeck Nachbarn Portal Activitystream Embedded Experience
IBM Connections und IBM Domino in der Nachbarschaft 4. Vertrauensstellung
Zugriff über SSL-geschützte Verbindung (HTTPS) • Sensible Daten werden übertragen • Authentifizierung auf den API‘s erfolgt oft über Basic-
Authentifizierung • Qualifizierte Zertifikate verwenden (Trust-Center oder eigene
sichere CA)
Bei Installation von Domino und WS auf einer gemeinsamen Plattform: • Zertifikatsrequest erst auf Websphere erstellen und Zertifikat
importieren • Dann über IKeyMan das komplette Zertifikat in eine *.kyr – Datei
vom Domino importieren
Entwickler
Admin
www.dnug.de
Jens Ribbeck
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 1. Domino im Fenster
Domino Anwendung (Web)
IBM Connections-Oberfläche
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 1. Domino im Fenster
Darstellung der Domino-Anwendung im IFrame (LotusMain) • Integration muss über Customization von IBM Connections
erfolgen • Anwendungsmenüpunkt in der Navigationsleiste sinnvoll • Methode zum Laden muss global verfügbar sein
DEMO
Entwickler
Admin
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 2. Domino im Fenster, so geht‘s
1. Vorlagen finden: <Installationspfad WebSphere>/AppServer/profiles/<AppServer_Name>/ installedApps/<cell_Name>/ <AppName>.ear/<AppName>.war/nav/templates
2. Notwendige Vorlagen kopieren: • header.jsp • beliebige Vorlage aus /menu/
Navigation anpassen
Entwickler
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 2. Domino im Fenster, so geht‘s
3. Customization Ordner ermitteln: In ICS: Umgebung -> Websphere Variablen -> CONNECTIONS CUSTOMIZATION PATH (typisch: opt/IBM/Connections/data/shared)
4. Gewählte Vorlagen speichern: • Im Unterordner ./common/nav/templates • ggf. auch in ./common/nav/templates/menu
5. Vorlagen individuell anpassen: • Hauptmenus ein- und ausblenden • Eigene Menus erstellen • Globale Javascript-Methoden einbauen (z.B. zum Laden der Anwendungen)
--> Beispiel für angepasste header.jsp
Navigation anpassen
Entwickler
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 2. Domino im Fenster, so geht‘s
6. Anwendungen neu starten: ALLE (!) betroffenen Anwendungen müssen mit den angepassten Vorlagen neu gestartet werden, damit das globale Menu aktiviert wird.
Navigation anpassen
Entwickler
Admin
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 3. Domino im Fenster, Pro‘s & and Con‘s
Vor- und Nachteile dieser Integrationsart + Einstieg in die Anwendung von „überall“ (Portal) + Benutzer findet gewohnte Umgebung vor und navigiert intuitiver + Zugang zu IBM Connections wird über das Angebot geschaffen + SSO zur Anwendung - Domino-Anwendung braucht zwingend ein Browser-Interface - Die Anwendung kann nicht direkt auf Connections zugreifen - Integration bedingt umfangreiche Administrative Eingriffe - Keine „schnellen“ Änderungen möglich - „Starre“ Integration
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 4. Domino im iWidget, individuell nutzbar
Domino Daten
Domino-Anwendung ist die Quelle (z.B. Agent, XPage etc.), Rendering erfolgt im IBM Connections
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 5. Domino im iWidget, so gehts
<?xml version="1.0" encoding="UTF-8" ?>
<iw:iwidget name="MyForms"
xmlns:iw="http://www.ibm.com/xmlns/prod/iWidget"
supportedModes="view" iScope="MyForms">
<iw:resource uri="myFormsList.js"/>
<iw:content mode="view">
<![CDATA[
<div id="myFormsHeader"></div>
<div id="myFormsContent">Daten werden geladen
...</div>
<div id="myFormsFooter"></div>
]]>
</iw:content>
</iw:iwidget>
plus die referenzierten Ressourcen, im Beispiel „myFormsList.js“
Entwickler
iWidget entwickeln/bereitstellen
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 5. Domino im iWidget, so gehts
iWidget entwickeln/bereitstellen
Entwickler
Admin Datenintegration • Erfolgt über ajax-Requests vom Domino (z.B. dojo.xhrGet) • Bereitstellung über geeignete Mittel (z.B. Agent) • Bereitstellung in geeignetem Format (z.B. Json)
Bereitstellung • iWidget und Ressourcen auf dem HTTP-Server bereitstellen
Proxy-Konfiguration anpassen • Ajax-Requests über Proxy wegen Cross-Domain-Scripting Einschränkungen
Aktivierung • Durch Homepage-Administrator (Rolle) Beispiele…
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 5. Domino im iWidget, so gehts
Entwickler
Admin
Beispiele… <proxy:policy url="https://ic.ulc.de:7443/*" acf="none" basic-auth-support="true"> <proxy:actions> <proxy:method>GET</proxy:method> <proxy:method>POST</proxy:method> <proxy:method>PUT</proxy:method> <proxy:method>DELETE</proxy:method> </proxy:actions> <proxy:headers> [… headers bei Bedarf ergänzen …] </proxy:headers> <proxy:cookies> <proxy:cookie>DomAuthSessId</proxy:cookie>
<proxy:cookie>LtpaToken</proxy:cookie> <proxy:cookie>LtpaToken2</proxy:cookie> </proxy:cookies> </proxy:policy>
Wichtig für SSO
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 6. Domino im iWidget, Domino „Widget-Proxy“
Generisches Interface:
Beliebige Domino Anwendungen
z.B. Xpage-Anwendung, muss einmalig entwickelt werden
wird durch die Proxy- Anwendung bereitgestellt und muss nur eingebunden werden
Entwickler
Admin
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 6. Domino im iWidget, Domino „Widget-Proxy“
DEMO
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience Portal
IBM Connections als Portal für IBM Domino Anwendungen 7. Domino im iWidget, Pro‘s und Con‘s
Vor- und Nachteile dieser Integrationsart
+ Ohne großen Admin-Aufwand integrierbar + Benutzer kann sich seinen Arbeitsplatz individuell einrichten + Nutzung nach Bedarf, universell erweiterbar + Domino Anwendung muss nur wenig erweitert werden (kein Browser-Interface nötig) + iWidget wird in <div> gerendert, damit Zugriff auf Umgebung möglich - Platz für Darstellung eingeschränkt (Widget) - Proxy-Einstellungen sind komplex
www.dnug.de
Jens Ribbeck
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Die IBM Domino Anwendung im Activitystream 1. Domino stellt Informationen bereit: Beispiel
DEMO
Urlaubsantrag:
Informationen klassisch per E-Mail, Neu: Eintrag im Activity Stream
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Die IBM Domino Anwendung im Activitystream 2. Domino stellt Informationen bereit: wie geht‘s
Activitystream beschreiben:
API‘s benutzen • IBM Connections API (REST / ATOM) • IBM Connections OpenSocial API (Json)
Brücken bauen (im Beispiel) • Domino kann mit Bordmitteln keine HTTP-Requests senden • Einbindung des Java Apache-HTTP-Clients + minimale Methoden als Interface
in der Domino-Applikation • Nutzung aus LotusScript-Kontext heraus über LS2J, Vorteil: an vorhandenen
Code „andocken“, vorhandenes Know How beim Kunden nutzen • Interface als Klasse im LotusScript abgebildet
Entwickler
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Die IBM Domino Anwendung im Activitystream 2. Domino stellt Informationen bereit: wie geht‘s
Kommunikationswege
Domino-Server mit Domino Anwendung WSA-Server
mit IBM Connections
Quelle der Information
Konsument der Information
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Die IBM Domino Anwendung im Activitystream 2. Domino stellt Informationen bereit: wie geht‘s
Umgebung anpassen:
System-Benutzer für Domino-Interface • Rolle „admin“ in den IBM Connections-Anwendungen • Rolle „trustedExternalApplication“ in der Anwendung „WidgetContainer“ • Credentials in der Domino-Welt „sicher“ verwalten!
Java-Sicherheitseinstellungen • SSL-Zertifikate in cacerts importieren • java.security und java.policy anpassen
-> WICHTIG: keine Sicherheitslücken einbauen
Entwickler
Admin
www.dnug.de
Jens Ribbeck
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Embedded Experience: IBM Domino in Connections funktional integriert 1. Domino stellt Aufgaben im Activitystrem bereit
DEMO
Urlaubsantrag:
Öffnen der Anwendung klassisch per Link, Neu: Genehmigung direkt im Activity
Stream
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Embedded Experience: IBM Domino in Connections funktional integriert 2. Domino stellt Aufgaben im Activitystrem bereit, wie geht‘s
Activitystream mit EE beschreiben:
Entwickler
API‘s benutzen • IBM Connections OpenSocial API (Json)
Brücken bauen (im Beispiel) • Zusätzliche „Embeded Experience“-Daten im Interface • SocialGadget zur Darstellung und Bearbeitung im IBM Connections notwendig • Zu nutzendes Gadget wird über die API referenziert
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Embedded Experience: IBM Domino in Connections funktional integriert 2. Domino stellt Aufgaben im Activitystrem bereit, wie geht‘s
Activitystream mit EE beschreiben (Beispiel):
Entwickler {
"actor": {"id": "36AD6368-FD07-4B00-C125-73F6005660AD"},
"verb": "post",
"title": „Eine Aktion für ${Actor}(ToDo)",
"object":{
"summary": "ToDo im Prozessmanagement",
"objectType": "note",
"id": "1234567890-8",
"displayName":"ToDo"
},
"openSocial": {
"embed": { "gadget":"https:\/\/ic.ulc.de\/gadgets\/osGadgetAS.xml",
"context":{
"content": "Bitte bearbeiten Sie den Antrag"
}
}
},
"connections" :{
"actionable": "true",
"saved": "false"}
}
url (post): https://[host]/connections/opensocial/basic/rest/activitystreams/[userid]/@all/@all
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Embedded Experience: IBM Domino in Connections funktional integriert 2. Domino stellt Aufgaben im Activitystrem bereit, wie geht‘s
Gadget entwickeln/bereitstellen
Entwickler
Admin Datenintegration • Daten werden über Content bereitgestellt, zusätzlich ajax-Requests vom
Domino (z.B. spezielle Methoden: Klasse „gadgets.io“) • Aktionsinterface über geeignete Mittel (z.B. Agent zum
Genehmigen/Ablehnen)
Bereitstellung • Gadget und Ressourcen auf dem HTTP-Server bereitstellen
Proxy-Konfiguration anpassen • Ajax-Requests über Proxy wegen Cross-Domain-Scripting Einschränkungen, ggf.
zusätzlich Regeln in /opensocial-proxy-rules/proxy-policy.dynamic
Aktivierung • Durch Homepage-Administrator (Rolle) Beispiele…
Portal
www.dnug.de
Jens Ribbeck Nachbarn Activitystream Embedded Experience
Embedded Experience: IBM Domino in Connections funktional integriert 3. Vergleich der API‘s
Welche API ist geeignet
Beide API‘s • Werden über den gleichen Weg angesprochen (URL/REST) • Nutzerauthentifizierung identisch (Basic / OAuth) • Sicherheitsfragen identisch
IBM Connections API • Mächtiger Funktionsumfang, aufwändig für „kleine“ Integrationsaufgaben • Geeignet für spezielle Anwendungen (z.B. Projektmanagement: Tasks und Aktivitys in
der Anwendung „Aktivitäten“) • Keine (dokumentierte) Möglichkeit für Embedded Experience
IBM Connections Opensocial API • Eingeschränkter Umfang, aber Embedded Experience • Offener Standard • Derzeit kein Löschen von Einträgen und kein nachträgliches Anpassen fremder Einträge
Fazit
• Auch Kunden mit Domino < 9.x können heute bereits Anwendungen in IBM Connections integrieren = wichtiges Argument.
• Sicherheitsbetrachtungen sind wichtig, die Kunden müssen hier gehört werden.
• An vorhandene Erfahrungen und Know How beim Kunden kann mit den beschriebenen Methoden angeknüpft werden.
• Innovativ ≠ Intuitiv, Integration in kleinen Schritten mit großer Wirkung ist manchmal sinnvoller als „der große Wurf“
Social Collaboration 39: "Vernetzte Informationswelt“
www.dnug.de
Bitte nehmen Sie sich die Zeit,
um diesen Vortrag zu bewerten
(A6-Block in Ihren Konferenzunterlagen)
Rückgabe
Geben Sie das ausgefüllte Bewertungsblatt
bei dem Moderator/Betreuer Ihres Vortrages
bzw. am Tagungscounter der DNUG ab.
Verlosung
Unter allen Teilnehmern
wird ein iPod nano verlost.