Domino/WebSphere Integration

Werbung
Domino/WebSphere Integration
für dynamisches e-business
Klaus-Peter Schlotter
Solution Partnership Center
Stuttgart
[email protected]
Agenda
!
!
!
!
!
Entwicklung des e-business
Was ist WebSphere/J2EE?
Was ist Domino?
Domino/WebSphere Integrationstechniken
Demos
Die Evolution des e-business
Dynamic
e-business
. . längerfristiger Trend zu mehr
“.automatisierten
und integrierten
Prozessen.. .
”
Transformation
des Geschäftsmodells
—The McKenna Group
V
A
L
U
E
Integration des Webs
mit Geschäftssystemen
B2B
Beschaffen von
Informationen auf
dem Web
WEB
Access
Standards TCP/IP
Publish
HTML
EAI
B2C
Transact
SSL
Bestehende Geschäftsmodelle
Integrate
Internally
Integrate
Externally
JAVA
XML
Adapt
Dynamically
WEB SERVICES
Neue Geschäftsmodelle
e-business Adaption I
Unternehmen
Unternehmen Weltweit
Weltweit
Integrate
Internally
5%
Integrate
Externally
Große
Große
Unternehmen
Unternehmen
Integrate
3%
Externally
13%
Transact
13%
Access
47%
Access
14%
Integrate
Internally
14%
Transact
14%
Publish
32%
Nur die Hälfte der weltweiten Unternehmen machen mehr als
einfachen Internetzugriff.
Allerdings: mehr als 40% der großen Unternehmen (>1000MA)
arbeiten mit webbasierten Transaktionen.
Quelle: e-business Adoption Tracking Study 2Q01
Publish
45%
e-business Adaption II
Internet
Firewall
Die technologischen Anforderungen wechseln vom Web
Application Server . . .
Web
Application
Server
Transaction
Servers
Data
Servers
Access
Publish
Transact
e-business Adaption III
. . . zu einer vollständigen, offenen, Standard basierten
e-business Infrastruktur
Geschäftspartner
Zulieferer
Angestellte
Edge Servers
Kunden
Directory
and Security
Servers
Integration
Servers
Transaction
Servers
Web
Presentation
Servers
Web
Application
Servers
Data
Servers
Personalization
Portals
Integrate
Internally
Mobile
Integrate
Externally
Commerce Collaboration
Adapt
Dynamically
e-business Integration
Informationen
Elektronische Beschaffung,
Beschaffung,
Elektronische
Marktplätze und
und Exchanges
Exchanges
Marktplätze
Anwendungen
SCM (Supply
(Supply Chain
Chain
SCM
Management)
Management)
e-business Initiativen
Initiativen
e-business
ERP-Integration
M&A-Verwaltung
UnternehmensUnternehmensumwandlung
umwandlung
Mitarbeiter
CRM (Customer
(Customer
CRM
Relationship
Relationship
Management)
Management)
Verwaltung des Produktzyklus
Teambasiertes Produktdesign
Direkte Verarbeitung
Prozesse
Collaborative Commerce – Menschen verbinden
Information und Wissen
Gemeinschaft
" Kenntnis über Personen im Netz
" Echtzeitkommunikation zwischen Personen
" Virtuelle Arbeitsplätze für die Problemlösung
" Strukturierter Workflow
" eLearning
Business Center
Geschäftstransaktionen
Collaborative Commerce - Produkte
Information und Wissen
Gemeinschaft
WebSphere
Business Center
Geschäftstransaktionen
Agenda
! Entwicklung des e-business
! Was ist WebSphere/J2EE?
Einführung in J2EE
" IBM‘s WebSphere Application Server
" IBM‘s WebSphere Software
"
! Was ist Domino?
! Domino/WebSphere Integrationstechniken
! Demos
The J2EE Framework
Client
Application Logic
Data
JDBC
View
Model
Interface
Application
Web
Container
Component
Tag
Library
J2EE
Application
Server
JAF
Interface
JavaMail
JMS
JDBC
Web services
JSPs
JTA
JNDI
am
Application
Component
e
d
En
n
io
t
taXML
n
JavaMail
Documents
e
äs
r
rP
e
d
RMI
Mail Server
Java
Application
DB
JAF
JavaMail
JMS
JDBC
JTA
JNDI
en
i
l
EJBfoContainer
l
Sessione
Entity
z
Beans
Beans
in
E
:
ie
l
Interface
Fo
te
r
Application
Controller ie
Component
m
i
n
A
RMI/IIOP
Client
Application
RMI/IIOP
Applet
Servlets
Database Middleware
(X)HTML/
XML
RDMS
IIOP
CORBA
Server
JNDI
Remote System
Directory Service
JMS
Message Queue
IBM WebSphere Application Server
!
!
!
!
IBM‘s Java Application Server
Teil von IBM‘s WebSphere Familie
Multi-Plattform
Hohe Skalierbarkeit
Clustering
" Caching
"
! Version 5 unterstützt J2EE 1.3 Standard
! Standard basierte Entwicklungswerkzeuge
"
WebSphere Studio Application Developer (basiert auf Eclipse Open
Source)
WebSphere Software für dynamisches e-business
Stellt jedem Benutzer oder
Gerät angepassten Inhalt zur
Verfügung
Commerce
Portale
Geschäfts-Prozesse zur Erhöhung
der Flexibilität integrieren und
automatisieren
Umfassende Verkaufslösungen für
Kundenbindung (B2C) und
komplexe Geschäftsprozesse
(B2B)
Business Process Management
Modellieren und Automatisieren von
Geschäftsprozessen über
verschiedene Systeme und
Kunden- Business Organisationen hinweg
Personailiserter Zugriff auf
Informationen, Anwendungen bindung &
Integration
und Personen für Angestellte,
Information
Partner und Kunden
Mobil und Sprache
WebSphere
Mobil- und Sprachlösungen
zur Erweiterung des
e-business für Angestellte,
Kunden und
Geschäftspartner
Basis
und Tools
Anwendungs-Integration
Flexible und leistungsfähige
Integration von
Geschäftsprozessen im
Unternehmen oder mit
Handelspartnern
Neue Anwendungen erstellen, verbinden und verwalten
Studio
Professionelle e-business
Anwendungsentwicklungstools
basierend auf einer offenen
"workbench" Technologie
Application Server
Extrem leistungsfähige und
skalierbare Plattform um
e-business Anwendungen
umzusetzen
Host Access
Einfacher Zugriff
auf Anwendungen
& Daten auf
Host-Systemen
Agenda
! Entwicklung des e-business
! Was ist WebSphere/J2EE?
! Was ist Domino?
Stärken
" Domino Architektur
" Domino Anwendungsarchitektur
"
! Domino/WebSphere Integrationstechniken
! Demos
Lotus Domino
! Führende Infrastruktur für „collaborative“ Kommunikation
e-mail
" Instant Messaging
" Replikation von Anwendungen
"
! Verfügbar auf allen führenden Betriebssystemen
! Hohe Skalierbarkeit
Clustering
" Partitioning
"
! Infrastruktur für „Rapid Application Development (RAD)“
! Unterstützung der wichtigsten Protokolle
"
HTTP, CORBA, SMTP, POP3, IMAP, LDAP, NRPC,...
Lotus Domino Architektur
SOAP
RPCs & Protocols
NRPC -- HTTP -- SMTP -- POP/IMAP -- NNTP
UDDI
APIs
WSDL Java -- COM -- C/C++ -- CORBA/IIOP
JSPs
Object Methods and Classes
XML
Forms -- Documents -- Views -- Scripts
XSL
Capabilities
Workflow
e-mail
e-Mail
Discussions
Directory
Search & Index
Rendering
Rendering
Editing
Replication
Security
Security
Routing
Database
Database
...
Lotus Domino Anwendung
Domino Application(Data Base) .NSF
Security
Internet
Protocols
Access Control List
Design Elements
Form Agent
The application
Executes on the
Domino Server
Frameset
View "code" Pages
Data Elements
documents
Agenda
!
!
!
!
Entwicklung des e-business
Was ist WebSphere/J2EE?
Was ist Domino?
Domino/WebSphere Integrationstechniken
"
"
"
"
Unterschiede der Plattformen
Gemeinsame Benutzer und Gruppen Verwaltung
Client Single Sign-on
Serverseitige Java Integration
– CORBA
– XML
– Domino JSP Tags
! Demos
Unterschiede zwischen Domino und WebSphere
Primary Attribute
Domino
WebSphere App Server
Application Type
Collaborative
Integrated or Transactive
Content Type
Document
Data
Object Type
Form, view, database
Architecture
Scalability
Integrated application
platform
Large
Servlet, JavaBean, JavaServer
Page (JSP), Enterprise JavaBean
(EJB)
J2EE Java component platform
Skills required
Moderate
High
Development Model
BASIC, COM/COM+, Java,
Web (JavaScript, DHTML)
Notes, Browsers
Java (J2EE)
NRPC, HTTP, IIOP, SMTP,
NNTP, IMAP/POP3 etc.
Domino Designer
HTTP, IIOP
Clients supported
Protocols supported
Application tools
Massive
Browsers
WebSphere Studio App. Developer
Gemeinsame Benutzer und Gruppenverwaltung
LDAP
WebSphere
Domino
LDAP
Domino
WebSphere
...Or...
HTTP/HTTPS
Domino as LDAP
3rd Party LDAP
Client Single Sign-on
! Domino 5.0.5 "Multi-Server Session Authentication"
ein cookie-basiertes Session "Authentication" Schema
" arbeitet über mehrere Domino Server
– teilen einen Sicherheitsschlüssel der im Serveradressbuch abgelegt
ist.
"
! Domino 5.0.5 MTSA kompatibel mit WebSphere 3.5 LTPA
Domino kann den WebSphere Sicherheitsschlüssel importieren
" Domino kann WebSphere kompatible "Cokies" produzieren und
entgegennehmen
" Resultat: "Single Sign-On" über Domino 5.0.5+ und WebSphere 3.5+
Server
"
Ablauf eines „Client Single Sign-on“ Vorgangs
!
Definieren eines Tokens für die Domain (z.B. de.ibm.com)
!
Definitionen in WebSphere und Domino vornehmen
1. Erzeugen eines Cookies im Browser über den Aufruf einer URL
!
!
z.B. http://server.de.ibm.com/servlet/snoop // WebSphere Objekt
http://server.de.ibm.com/names.nsf?OpenDatabase // Domino Objekt
2. Cookie wird an Browser übertragen
!
!
Alle nachfolgenden URLs übertragen das Cookie für die Domain im HTTP
Header
Verwenden des Cookie für den Aufbau einer CORBA Session zu einem
Domino Server in einem Java Programmobjekt (Servlet, JSP kann das
Cookie aus dem HTTP Header lesen).
! Demo dazu später
Serverseitige Java Integration
! Zugriff von Servlets und JSPs auf Domino Daten
CORBA Zugriffe
" Domino JSP Tags
"
! Aufruf eines Servlets über den „Submit“ einer Domino Form
! Aufruf von Enterprise JavaBeans aus Domino Agenten
"
Releaseabhängig wegen unterschiedlicher Java Virtual Machine Versionen
! Zugriff auf Domino Daten über XML
CORBA Zugriffe auf Domino Objekte
notesid1
N
R
P
C
N
R
P
C
I
I
O
P
I
I
O
P
Notes.jar
App
NCSO.jar
Über die Bibliothek NCSO.jar
werden die API Aufrufe an den
Server weitergeleitet
# Remote API
Notes/Domino
Kernel
Notes/Domino
Kernel
notesid2
NAMES.NSF
import lotus.domino.*;
either RED or BLUE code
public class NotesServerVersion {
public static void main(String args[]) {
CLASSPATH= ...;..\
...;..\NCSO.jar;...
NCSO.jar;...\\Notes.jar;...
Notes.jar;...
try {
Session s = NotesFactory.createSession("Servername“, ……);
Session s = NotesFactory.createSession("");
Database db = s.getDatabase("","NAMES.NSF");
Database db = s.getDatabase("Servername","NAMES.NSF");
System.out.println("Database Title = " + db.getTitle());
}
catch (NotesException e) {
.....
......
Servlet mit LtpaToken für CORBA Zugriffe I
Retrieve the Cookie
Beim Aufruf des Servlets wird der
LtpaToken im HTTP Header
übertragen.
try {
cookies = req.getCookies();
} catch (Exception e) {
sendResponse(res, "Exception from req.getCookies(): " + e.toString());
return;
}
if (cookies == null) {
s1 = "No cookies received";
} else {
for (int i = 0; i < cookies.length; i++) {
String cookie = cookies[i].getName();
if(cookie.equals("LtpaToken")) {
sessionToken = cookies[i].getValue();
System.out.println("Found LtpaToken cookie");
} else {
System.out.println("Found other cookie: " + cookie);
}
} // endfor
} // endelse
Servlet mit LtpaToken für CORBA Zugriffe II
Use
........ the Cookie
if (sessionToken != null) {
System.out.println("Found session token: " + sessionToken);
NotesThread.sinitThread();
Session session = null;
try {
session = NotesFactory.createSession(„server.de.ibm.com", sessionToken);
s1 = "<br>" + "UserName: " + session.getUserName();
} catch (NotesException e) {
s1 += "<br>" + e.id + e.text;
e.printStackTrace();
} finally {
try { session.recycle();}
catch(Exception x) {}
NotesThread.stermThread();
sendResponse(res, s1);
} // end finally
} // endif sessionToken
else {
System.out.println("Null Session Token");
sendResponse(res, "No sesssion LTPA token found");
}
..............
Domino Custom Tag Library
! Schließt Java code in HTML-ähnliche "Tags" ein
! Stellt komplexe Funktionalität in einfach zu benutzende Makros
zur Verfügung
! Trennung von Präsentation und Logik
! Geringe Javakenntnisse erforderlich
#
! Schnell, einfach - RAD ( Rapid Application Development) in einer
J2EE Umgebung. (Q1/03 Domino Toolkit für WSAD)
! Erfahrene Javaentwickler können schnell JSPs entwickeln
! Möglichkeit für LotusScript Entwickler JSPs zu entwickeln ohne
Javakenntnisse
Domino Custom Tags
!
!
!
!
Data Access Tags
Data Input Tags
Process Control Tags
Utility Tags
Data Access Tags
session
formula
unid
db (database)
Ftsearch
viewloop
document
Item
docloop
view
viewitem
more....
<%@ taglib uri=“domtags.tld” prefix=“domino”%>
…………….
<TABLE>
<domino:view dbname=“foo.nsf” viewname=“people”>
<domino:viewloop>
<TR><TD><domino:viewitem col=“1”/></TD>
<TD><domino:viewitem col=“2”/></TD></TR>
</domino:viewloop>
</domino:view>
</TABLE>
Data Input Tags
form
input
setitem
checkbox
savedoc
editdoc
deletedoc
saveclosedoc
validaterequired
validatepattern
richtext
more....
<%@ taglib uri=“domtags.tld” prefix=“domino”%>
…………….
<domino:form name=“new” dbname=“demo.nsf” schema=“document”>
Subject: <domino:input name=“subject”/><br>
Data:<br>
<domino:richtext name=“body”/>
<domino:savedoc/>
</domino:form>
………………..
Process Control Tags
action
ifserverevent
runagent
ifauthor
ifdocauthor
ifdbrole
ifcategoryentry
nodocument
more....
<%@ taglib uri=“domtags.tld” prefix=“domino”%>
<%String theUNID = request.getParameter(“unid”);%>
…………….
<domino:ifdocauthor>
<domino:runagent name=“markCompleted” unid=<%=theUNID%>”/>
</domino:ifdocauthor>
………………..
Utility Tags
if
else
elseif
condition
switch
case
format
browsertag
nocache
<%@ taglib uri=“domutil.tld” prefix=“util”%>
…………….
<util:if>
<util:condition>
<%=session.getAttribute(“CONF”).equals(“Paderborn”)%>
</util:condition>
Welcome to Paderborn<BR>
</util:if><util:else>
Hello World<BR>
</util:else>
………………..
Sample HelloDomino.jsp
<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Hello Domino -- Example One</TITLE>
<%@taglib uri="/WEB-INF/tld/domtags.tld" prefix="domino"%>
<%@taglib uri="/WEB-INF/tld/domutil.tld" prefix="domcommon"%>
<META name="GENERATOR" content="IBM WebSphere Studio">
</HEAD><BODY><B></B>
<domino:default
scope = "page"
host = "localhost:81"
user = ""
password = ""
dbserver = ""
dbname = ""
viewname = ""
onfailure="inline"/>
<H1>HelloDomino.jsp
</H1>
<H1>HelloDomino.jsp</H1>
Einige Daten aus dem Domino “session” Tag
<HR>
<domino:session id="mySession" >
<%-<%-- This is a JSP comment. It's here to remind you that the mySession object's scope is only
within the session tag. --%>
--%>
<H2>
Platform = <%= mySession.getPlatform() %> <br>
br>
Version = <%=
mySession.getNotesVersion() %> <br>
br>
Server name = <%= mySession.getServerName() %> <br>
br>
</H2>
<hr>
</domino:session>
</BODY>
</HTML>
HelloDomino.jsp im Browser
Aufruf eines Servlets über den „Submit“ einer Domino Form
Das Servlet kann entsprechend der Eingaben verschiedene EJBs aufrufen um eine
Reservierung vorzunehmen. Um die Eingabedaten wieder in Domino abzuspeichern müssen
die Eingabewerte aus dem Servlet Requestobjekt extrahiert und ein Dokument
über die Domino Java Objekte generiert werden
Aufruf von Enterprise JavaBeans aus Domino Agenten
! Mit der JVM in der Version 1.3 von Domino 6 kann ein Java Agent
auch direkt auf EJBs zugreifen
Einfacheres Abspeichern der Eingabedaten in Domino
" Konfiguration einer J2EE Client Umgebung für den EJB Zugriff
" Abwegen der Performance Unterschiede zwischen Servlets und Agenten
– Servlets verbleiben im Speicher
"
XML Integration – Was ist XML?
!
!
!
!
!
!
!
eXtensible Markup Language (XML)
Textrepräsentation von Daten und deren Struktur
cross Plattform/cross Technologie
Gewachsen aus SGML
Separiert Daten und Präsentation
Wurde entwickelt für den Datenaustausch wischen Programmen
Eigene Datenstrukturen können definiert werden (sieht aus wie
HTML)
XML Integration – Beispiel: Domino View als XML
XML Integration
! Die Custom Tag Libraries basieren auf dem Datenaustausch über
XML
! Es können sowohl die Domino Datenelemente wie auch die
Designelemente ausgelesen werden
! Mit Domino 6 wurden die Domino Objekte um verschiedene XML
Fähigkeiten erweitert
"
"
"
"
"
DOMParser
SAXParser
XSLTransformer
DXLImporter
DXLExporter
„Collaborative Components“ im WebSphere Portal
Two portlets that communicate using
" portlet messaging
" person tags
" menu tags
" DominoService
" ViewInfoService
" CalendarService
Demos
! WebSphere Studio Application Developer als Entwicklungsumgebung
Single Sign-on – Retrieve Cookie for a CORBA session
" JSP Tag Samples
"
Client
J2EE Framework
–
Animation
1
Application Logic
JDBC
View
Model
Web Container
(X)HTML/
XML
Servlets
Tag
Library
Mail Server
RMI
Java
Application
EJB Container
IIOP
CORBA
Server
JAF
JavaMail
JMS
JDBC
J2EE
Application
Server
Session
Beans
Entity
Beans
JAF
JavaMail
JMS
JDBC
JTA
JNDI
Controller
RMI/IIOP
Client
Application
RDMS
JavaMail
JSPs
JTA
JNDI
RMI/IIOP
Applet
Data
JNDI
Directory Service
JMS
Message Queue
J2EE Framework – Animation 2
Interface
Application
Component
Client
Application
Interface
Application
Component
XML
Documents
Database Middleware
Applet
Web services
(X)HTML/
XML
DB
Interface
Application
Component
Remote System
Herunterladen