9
KONFERENZ Donnerstag, 11. November 2004 11h00, Variohalle 1 Lotus Notes Integration mit Oracle Applicationsserver Arne Brüning, Christian Kühne ORACLE Deutschland GmbH, Hamburg Schlüsselworte: Lotus Notes, Oracle Database, Oracle Application Server, OracleAS Portal, Oracle JDeveloper, Oracle Application Development Framework, JSR-227 Data Binding, JSR-168 Zusammenfassung Dieser Vortrag gibt die Erfahrungen aus einem Oracle presales Projekt wieder. Die Anbieter wurden aufgefordert, zu demonstrieren wie man eine Anwendung auf einem J2EE-konformen Application Server erstellt, die gleichzeitig auf eine Oracle und eine Lotus Notes Datenbank zugreift. Eine Integration der Lösung in ein Portal-Framework sollte möglich sein, hierbei war der Zugriff auf Lotus Mail und Kalender Funktionalität aus dem Portal notwendig. Da das Thema für das Projektteam neu war, Kenntnisse über Lotus Notes waren bislang nicht vorhanden, wurden viele neue Erfahrungen über die Möglichkeit der Anbindung von Lotus Notes an J2EE-konforme Anwendungen gemacht. Leider waren nicht alle Erfahrungen positv. Daher soll dieser Vortrag aufzeigen, welche Möglichkeiten der Anbindung existieren, aber auch, welche Wege in die Sackgasse führen. Gelöst wurde die Aufgabe letztendlich durch zwei parallele Ansätze: • Einsatz der für Lotus Notes vorhandenen Standard-Portles sowie der Modifi- kation eines generischen Lotus Notes Portlets zusammen mit Oracle Portal • Einsatz der Oracle-Implementierung des Java Specification Request JSR-227: „A Standard Data Binding & Data Access Facility for J2EE” im Oracle Appli- cation Development Framework (ADF) Einleitung Häufig besteht das Problem, bestehende Lotus Notes Anwendungen in eine moderne Web-, J2EE- und/oder Portalarchitektur zu überführen. Zur Inte- gration von Lotus Notes gibt es verschiedene Ansätze wie z.B. der Einsatz von

Lotus Notes Integration mit Oracle Applicationsserver · PDF fileKONFERENZ Donnerstag, 11. November 2004 11h00, Variohalle 1 Lotus Notes Integration mit Oracle Applicationsserver Arne

  • Upload
    ledang

  • View
    213

  • Download
    1

Embed Size (px)

Citation preview

KONFERENZ

Donnerstag, 11. November 200411h00, Variohalle 1

Lotus Notes Integration mit Oracle Applicationsserver

Arne Brüning, Christian KühneORACLE Deutschland GmbH, Hamburg

Schlüsselworte:

Lotus Notes, Oracle Database, Oracle Application Server, OracleAS Portal,Oracle JDeveloper, Oracle Application Development Framework, JSR-227 DataBinding, JSR-168

Zusammenfassung

Dieser Vortrag gibt die Erfahrungen aus einem Oracle presales Projekt wieder.Die Anbieter wurden aufgefordert, zu demonstrieren wie man eine Anwendungauf einem J2EE-konformen Application Server erstellt, die gleichzeitig auf eineOracle und eine Lotus Notes Datenbank zugreift. Eine Integration der Lösungin ein Portal-Framework sollte möglich sein, hierbei war der Zugriff auf LotusMail und Kalender Funktionalität aus dem Portal notwendig.

Da das Thema für das Projektteam neu war, Kenntnisse über Lotus Notes warenbislang nicht vorhanden, wurden viele neue Erfahrungen über die Möglichkeitder Anbindung von Lotus Notes an J2EE-konforme Anwendungen gemacht.Leider waren nicht alle Erfahrungen positv. Daher soll dieser Vortrag aufzeigen,welche Möglichkeiten der Anbindung existieren, aber auch, welche Wege indie Sackgasse führen.

Gelöst wurde die Aufgabe letztendlich durch zwei parallele Ansätze:• Einsatz der für Lotus Notes vorhandenen Standard-Portles sowie der Modifi-

kation eines generischen Lotus Notes Portlets zusammen mit Oracle Portal• Einsatz der Oracle-Implementierung des Java Specification Request JSR-227:

„A Standard Data Binding & Data Access Facility for J2EE” im Oracle Appli-cation Development Framework (ADF)

Einleitung

Häufig besteht das Problem, bestehende Lotus Notes Anwendungen in einemoderne Web-, J2EE- und/oder Portalarchitektur zu überführen. Zur Inte-gration von Lotus Notes gibt es verschiedene Ansätze wie z.B. der Einsatz von

17. Deutsche ORACLE-Anwenderkonferenz

Standard-Portlets oder die Erstellung von neuen J2EE-Anwendungen mit demJDeveloper und dem Oracle Application Development Framework (ADF) unterVerwendung des Lotus Notes Datacontrols. Die verschiedenen Ansätze werdenhier vorgestellt, gegeneinander abgewogen und z.T. life gezeigt.

Typisches Environment bei mehreren Kunden• Gewachsene, meist inhomogene Infrastruktur• Eindeutiges, klares Commitment zu J2EE als Zukunftsstandard• Vorhandene Datenbestände in Domino, die auf Grund ihrer Integration in

Betriebsabläufe nicht kurzfristig migrierbar sind

In der Praxis bedeutet dies, daß in den J2EE-konformen Applikationen lesendund schreibend auf in Lotus vorhandene Datenbestände zugegriffen werdenmuß. Dieser Vortrag gibt die Erfahrungen aus einer Analyse der technischenMöglichkeiten zur Integration wieder.

„Datenbank“-Standardansatz: • frameworkunterstützte Entwicklung gegen Oracle DB• Daten aber physisch in „externer DB“• Connectivity via Database Link (hier: DBLink zwischen Oracle und Lotus)

Vorteil dieser Lösung ist die Transparenz der Lotus DB, d.h. die Applikationsieht nur die Master-DB (Oracle), obwohl die Daten physisch in Lotus abgelegtwerden.Die Funktionalität dieses Ansatzes wird entscheidend von der Qualität desODBC-Treibers bestimmt. Für nahezu alle relationalen Datenbanken liegenentsprechende Treiber vor; der aktuelle für Lotus vorhandene ODBC-Treiberhat jedoch entscheidene funktionale Einschränkungen, die einer produktivenNutzung entgegenstehen.

„J2EE“-Standardansatz:• JDBC-Treiber

Dieser Ansatz ermöglicht die Entwicklung nach dem RAD-Prinzip, da allemodernen J2EE-Entwicklungsumgebungen ein auf JDBC-besierendes Frame-work zur Verfügung stellen.Die Funktionalität dieses Ansatzes wird entscheidend von der Qualität desJDBC-Treibers bestimmt. Für nahezu alle relationalen Datenbanken liegen ent-sprechende Treiber vor; der aktuelle für Lotus vorhandene JDBC-Treiber hatjedoch entscheidene funktionale Einschränkungen, die einer produktiven Nut-zung entgegenstehen.

Dieser Ansatz doppelt die in Lotus gespeicherten Daten in eine Oracle-DB,damit die Applikation ausschließlich gegen die Oracle-DB arbeiten kann.

Ap

pli

cati

on

Se

rver

KONFERENZ

Vorteil dieser Lösung ist die Transparenz der Lotus DB, d.h. die Applikationsieht nur die Oracle-DB, obwohl die Master-Daten physisch in Lotus abgelegtwerden. Dieser Ansatz wurde bereits von einem Partner erfolgreich in Projek-ten realisiert.

Probleme können auftreten, wenn auf beiden Datenbeständen unabhängigvoneinader Änderungen vorgenommen werden können.Darüberhinaus muß die Aufdatierung der Slave-Daten administriert werden.

Eine Variante besteht darin, die Daten online in Lotus zurückzuschreiben, dader untersuchte ODBC-Treiber in dieser Richtung für alle untersuchten funk-tionalen Testfälle arbeitete. Daraus sind keine Ausagen über einen produktivenEinsatz ableitbar.

„Lotus-nativer“-AnsatzAlternativ zu den vorgestellten Treibern steht ein natives Interface in Formeiner Java-Bibliothek zur Verfügung (NCSO – Notes Client Side Objects). DieseKlassen können in beliebige Java-Applikationen eingebunden werden. Sieermöglichen den Zugriff auf Lotus via DIIOP (Domino Internet Inter ObjectRequest Broker Protocol) über HTTP.

Für die weitverbreiteten Lotus-Anwendungen (eMail, Kalender, ToDo, Kon-takte) stehen fertige Portlets als download auf portalstudio.oracle.com (Teil desOracle Technology Networks) zur Verfügung.Sie ermöglichen im Umfeld eines Portals den direkten Zugriff auf die entspre-chenden Datenbestände in Lotus.Für diese Applikationen ist dies die einfachste Möglichkeit der Integration.

Abb. 6: „fertige“ Lotus-Portlets

17. Deutsche ORACLE-Anwenderkonferenz

Oracle Portal Integration Solutions stellt einen Provider mit vier Portlets zurIntegration der Mail-, Kalender-, Kontakt- und ToDo-Informationen aus dempersönlichen Domino-Postfach des Anwenders.Der Provider nutzt als Protokoll zur Kommunikation mit Lotus eine Domino-spezifische iiop-Erweiterung (diiop – Domino iiop) und http; deshalb müssendie entsprechenden Prozesse auf dem DominoServer laufen (diiop und http).Die mit dem Lotus-Provider ausgelieferten Portlets (eMail, Kalender, To-Do,Kontakte) greifen auf die User-spezifische Mail-Datenbank mail/<user>.nsf zu. Dabei kümmert sich der Provider in erster Linie um die Kommunikation mitdem Portal (runtime), dem Portlet-Repository, dem SSO-Server und demDomino-Server.Die Portlets definieren, welche Daten von Domino zu holen sind und wie diesedargestellt werden sollen (rendering). Alle Verwaltungsaufgaben werden vomProvider übernommen, der fertig vorliegt.Der Zugriff auf die Domino-Mail-Datenbank erfolgt mit den IBM-Java-API„NotesClientSideObjects“ (ncso.jar).

Die Authentifizierung erfolgt im Single-Sign-On-Server der OracleAS-Infra-structure. Die dort hinterlegten Zugriffsparameter werden im OracleInternet-Directory gespeichert und ermöglichen dem Anwender die automatischeAnmeldung (SSO).

Abb. 7: Lotus Provider – technische Anbindung

Technisch gesehen ist dieses Portlet mit den Lotus-Mail-Portlets verwand; beidenutzen die IBM-Javaklassen zum Zugriff auf die Daten (ncso.jar).

Ap

pli

cati

on

Se

rver

KONFERENZ

Es ermöglicht den lesenden Zugiff auf jede beliebige Lotus-View (jede Lotus-Tabelle hat mindestens eine View); dabei können die Zugriffsparameter (Host,Server, Lotus-DB, View) im Customize-Dialog (Edit-Mode) des Portlets einge-geben werden. Darüber hinaus kann der Administrator die zu lesenden/an-zuzeigenden Spalten festlegen.

[Die Nutzung des Single-Sign-On Servers ist noch nicht realisiert; daher sindb.a.w. auch Nutzername und Password im Customize-Dialog (Edit-Mode) desPortlets einzugegeben]

Der Code dieses Portlets steht im Knowledge-Exchange des Portalstudio zurVerfügung.

Abb. 8: generic Lortus Provider

Die Nutzung des NCSO-APIs ohne entsprechendes Framework ist ähnlich müh-sam und aufwändig wie die Nutzung des JDBC-APIs.

Der Anwendungsentwickler ist vollständig verantwortlich die Erzeugung undVerwaltung der Verbindung zu Lotus und der Iteration über die entsprechen-den Abfragergebnisse.

17. Deutsche ORACLE-Anwenderkonferenz

Abb. 9: NCSO in Servlets, JSPs

Abb. 10: NCSO-Aufrufe im Code

Der Oracle JDeveloper ermöglicht mit seiner intergrierten Entwicklungsumge-bung die besonders einfache Entwicklung von Java-Anwendungen und -Kom-ponenten. Die offene Architektur ermöglicht, weitere Tools wie z.B. Wizardseinzubinden (Open add-in API). Hierzu wird der aktuell in Entstehung befind-liche Standard JSR-198 unterstützt.Das PDK stellt ein Portal Add-In zur Verfügung, mit dem Portlets im JDeveloperentwicklet werden können.

Ap

pli

cati

on

Se

rver

KONFERENZ

„Framework“-Ansatz• Kapselung der Lotus-Zugriffe im Framework• Deklarativer Ansatz• Volle Ausnutzung der IDE und des Frameworks

Um in das Oracle Application Development Framework bislang nicht bekannteDatenquellen einzubinden, muß ein sog. DataControl erstellt werden. Sobalddieses eingebunden wird, stehen alle weiteren Möglichkeiten des Frameworksund der Entwicklungsumgebung auch für diese Datenquelle zur Verfügung.

Das Model-View-Controller Pattern ist in der modernen Softwareentwicklungstark verbreite (s. z.B. Gamma: Entwurfsmuster).

Abb. 13: Model-View-Controller Architektur

Im Oracle Application Development Framework wird das Modell geteilt in dasModell-API und die Implementierung der sog. Business Services welche dieeigentlichen Datenquellen repräsentieren.

Der kommende Java Standard JSR-227 beschreibt, wie eine Datenquelle an dasModell-API angebunden wird. Auf dieser Basis wurde das Lotus Notes Data-Control für das Framework entwickelt und eingebunden.

Sobald das Lotus Notes Data Control in das Application Development Frame-work eingebunden ist, stehen alle anderen Funktionalitäten der IDE und desFrameworks zur Verfügung, wie z.B. die Data Binding Palette oder die Mög-lichkeit via Drag and Drop Datenquellen direkt in Oberflächen wie z.B. JSP‘seinzubinden.

17. Deutsche ORACLE-Anwenderkonferenz

Abb. 16: Visual and Declarative Development

Ausblick – eine Möglichkeit, wie es weiter gehen kann

Bei der bisher vorgestellten Lösung ist es bei gleichzeitigen Zugriffen auf Lotusund Oracle notwendig, daß die Anwendung verteilte Transaktionen koordinie-ren muß. Eine Lösungsmöglichkeit besteht darin, einen weiteren Layer einzuziehen, derdie Transaktionkontrolle übernimmt.

Eine weitere sinnvolle Erweiterung wäre, einen Lotus Notes Wizard in denJDeveloper zu integrieren. Dieser kann leicht über das javatools-API (JSR 168,www.javatools.org) eingebunden werden.

Ap

pli

cati

on

Se

rver

KONFERENZ

Abb. 18: Fazit