Title: Notes PHP Connector
1Notes PHP Connector
2Abstract
Für die Erzeugung dynamischer Webauftritte - sind
neben den verfügbaren sehr guten Notes Lösungen -
auch verschiedene andere Technologien im Einsatz.
Insbesondere in Verbindung mit dem Apache
Webserver - laut Netcraft Statistik ca. 70 der
weltweiten Webserver - ist PHP eine weit
verbreitete Entwicklungssprache für die
Entwicklung dynamischer Browseranwendungen. Die
Referenten stellen im ersten Teil die PHP
Technologie im Kontext der IBM Software vor.
Hierzu gehören neben Domino auch DB2 und
Cloudescape sowie die Sametime Technologie. Im
zweiten Teil stellen sie den von Visual Solutions
entwickelten PHP to Notes Connector vor. Der im
Rahmen des Open Source CMS eZ Publish entwickelte
Connector besteht aus zwei Teilen. Einer
Komponente für Lotus Domino und einer Komponente
für eZ Publish und damit PHP. Zur eigentlichen
Datenübertragung zwischen diesen beiden
Komponenten wird XML als Datenformat und HTTP als
Ãœbertragungsprotokoll verwendet. Das Konzept
verfolgt dabei einen serviceorientierten Ansatz.
Vorgestellt wird die derzeit verfügbare
Funktionssammlung und ihre Anwendungsmöglichkeiten
.
3Disclaimer
IBM, the IBM logo, DB2, DB2 Universal Database,
Domino, Everyplace, Lotus, the On Demand Business
logo, Notes, WebSphere, Workplace and the
Workplace family of marks are trademarks of
International Business Machines Corporation in
the United States, other countries, or
both. Microsoft and Windows are trademarks of
Microsoft Corporation in the United States, other
countries, or both. Linux is a trademark of
Linus Torvalds in the United States, other
countries, or both. Other company, product or
service names may be trademarks or service marks
of others. The information contained in this
documentation is provided for informational
purposes only. While efforts were made to verify
the completeness and accuracy of the information
contained in this documentation, it is provided
as is without warranty of any kind, express or
implied. In addition, this information is based
on IBMs current product plans and strategy,
which are subject to change by IBM without
notice. IBM shall not be responsible for any
damages arising out of the use of, or otherwise
related to, this documentation or any other
documentation. Nothing contained in this
documentation is intended to, nor shall have the
effect of, creating any warranties or
representations from IBM (or its suppliers or
licensors), or altering the terms and conditions
of the applicable license agreement governing the
use of IBM software.
4(No Transcript)
5Unternehmens Info
6Agenda
- Notes Geschichte Basisinformationen
- PHP im Kontext der IBM Software
- DB2 / Cloudscape, Sametime, Domino
- PHP Notes Connector
- Funktionsübersicht
- Beispiel
7Agenda
- Notes Geschichte Basisinformationen
- PHP im Kontext der IBM Software
- DB2 / Cloudscape, Sametime, Domino
- PHP Notes Connector
- Funktionsübersicht
- Beispiel
8Lotus Notes
communicate, collaborate, coordinate
Maske
View
Feld
.nsf
9-Boxen-Modell
Grundideen
Domino Server
eMail PIM
Anwendungsserver
.ntf
Anwendungs-Templates
99-Boxen-Modell
Reichweite
Extern
Unternehmen
Team
Komplexität
Kommunikation
Koordination
Zusammenarbeit
109-Boxen-Modell
Reichweite
Mail Sametime Blog Diskussion RSS Feeds
Notes Anwendung mit Web-Frontend
Notes Anwendung mit Web-Frontend
Extern
Mail Sametime Blog Diskussion RSS Feeds
Teamroom Office-Bibl.
Teamroom Office-Bibl. Notes/SAP
Unternehmen
Mail Sametime Blog Diskussion RSS Feeds
Teamroom Office-Bibl.
Teamroom Office-Bibl. Power-User Anwendung
Team
Komplexität
Kommunikation
Koordination
Zusammenarbeit
11Die Geschichte von Notes
- 1973 PLATO Notes Entwicklung am Computerbased
Education Reserch Laboratory (CERL) der
Universität Illinois - 1976 PLATO Group Notes (Unterscheidung zwischen
privaten und öffentlichen Inhalten) - 1984 Ray Ozzie, Tim Halvorsen und Len Kawell
entwickeln die Basis von Lotus Notes bei Iris
Associates Inc. - 1986 Vor-Version von Lotus Notes im internen
Einsatz - 1987 Lotus Development kauft die Rechte an Notes
- 1989 Version 1 wird in den USA ausgeliefert
- Anfang der 90iger Version 2.x in Deutschland
- 1994 Lotus kauft Iris Associates Inc. Iris
bleibt aber Entwicklungslabor für Notes - 1995 IBM kauft Lotus insbesondere wegen der
Notes Technologie
12Lotus Notes Domino Roadmap
continuing long into the future
Organizational Productivity Expanding the reach
of the Team Productivity era, with tools to
extend collaboration into Web sites, portals and
work spaces, mobile devices, and more
ND8
2005 Notes/Domino 7 IBM
Workplace Collaboration Services
2004 Notes and Domino 6.5.1 IBM Workplace
products, technologies, solutions
Team Productivity Instant messaging, Web
conferences, team discussions, document and Web
content management, e-learning,
2003 Notes and Domino 6.5
embraced J2EE
2002 Notes and Domino 6.0
1999 Notes and Domino R5
embraced the web
1989 Notes R1
13Notes Begriffe
- .nsf
- Feld
- Maske / Form
- View
- Replikation
14Notes Datenbank (.nsf)
- NSF Notes Storage Facility
- keine relationale Datenbank
- speichert ALLE Inhalte einer Notes Anwendung
- vom Datensatz bis zur Zugriffskontrolliste
- Datenstruktur am ehesten zu vergleichen mit XML
(Namens-Werte-Paar) ist aber kein XML (siehe
hierzu DXL) - mehr später...
15Notes Feld
- Text
- Date/Time
- Number
- Dialog Liste
- Checkbox
- Radio button
- Listbox
- Combobox
- Rich Text
- Authors
- Names
- Readers
- Password
- Formula
- Time zone
- Rich Text Lite
- Color
16Maske
- Notes speichert Datenin losem Schema
- Masken geben Vorgabe bei der Erstellung von
Dokumenten
17View
18Replikation
- Synchronisation von Notes Datenbanken
- zwischen Notes Client und Domino Server
- zwischen Domino Servern
- Abgleich von Teilmengen möglich
- selektive Replikation
- Client kann Teildokumente abrufen
- .nsf-Datei macht Replikation möglich
- Übertragung erfolgt verschlüsselt
19Domino Server
- Domino Server (seit Version 4.5 vorher Notes
Server) - Lotus Domino Server ist eine Entwicklerplattform
für Groupware-Anwendung in verteilten Umgebungen
mit Werkzeugen für Rapid Application Development
(RAP). Domino bringt eine Benutzerverwaltung mit
entsprechenden Sicherheitsmechanismen (Private-
Public-Key) und eine komplette verteilte
Objekt-Datenbank (Object Store) als
Grundfunktionalität mit. - Auf dem Domino Server können die
Standardsoftware- Komponenten der Lotus Domino
Family unter Zugriff auf die Benutzerverwaltung
und die Objekt-Datenbanken implementiert werden. - Plattformunabhängigkeit
- Windows, Linux, AIX, HP-UX, i5/OS, zOS, Solaris
- Keine strikte Abhängigkeit von Betriebssystemversi
onen und Verzeichnisdiensten
20offene Strukturen
HTTP XML Webservices CGI, PERL, SSI, DSAPI Java
Servlet Engine
SMTP, IMAP, MAPI, POP, LDAP
NNTP
Notes
Open Client Access
IIOP
Open Development
OBJECT SERVICES API (OLE,COM, Java, JavaScript,
LS, C, XML,CORBA)
CS FREE TIME SEARCH
APPLICATION LOGIC
Application Services
MESSAGING ROUTING
DECS
WORKFLOW
SCH TRIGGERED AGENTS
SEARCH ENGINE
Infrastructure Services
VIEW INDEXING
DIRECTORY
REPLICATION
ROLES BASED ACCESS
ACCESS CONTROL
DIGITAL SIGNATURES
RSA S/MIME ENCRYPTION
Dual Security - Notes Web
SECURITY
OBJECT STORE
Databases Templates
NSF
NSF
NTF
NTF
ADVANCED SERVICES
CLUSTERING NOTES WEB
BILLING
PARTITIONING
Enterprise Services
Cross Platform
NT, OS/2, AS/400, S/390, AIX, HP-UX, Solaris,
LINUX
21Domino Zugriffs-Steuerung
Notes-ID-Datei
Notes Client
Datenbank
Dokument
Feld
Prüfung des Serverzugriffs Prüfung der Notes ID
Domino
Prüfung des Serverzugriffs Prüfung des
Internet-Passworts
Browser
Prüfung der ACL Prüfung der Rollen
Prüfung von Leser- und Autorenfeldern
Feldver- schlüsselungen
22Anwendungsentwicklung
- _at_Funktions
- Lotus Script
- Java Script
- Java
- PHP
23Schnittstellen (-Standards)
- SMTP, NNTP, POP3, IMAP
- vCard
- iCal
- CORBA
- WebServices
- XML-Import/Export (DXL)
- Datenpumpen
- Support für RIM mobile Endgeräte
24Domino Clients
- Lotus Notes (Win Mac, ab 7.0.1 Linux)
- Domino Web Access
- Domino Access for Outlook
- PDAs
- WebSphere Portal
- Version 9 auf Basis der Eclipse RCP
- externer Zugriff aus Java / PHP Apps
25PIM Standard-Anwendungen
- eMail, Kalender Aufgabenverwaltung
- Diskussion
- Teamroom
- Dokumenten-Bibliothek
- RSS-Feed-Generator
- Blog-Template
26Architektur Domino zentrierte Betrachtung
Web Service DXL Sametime
Anmerkung PHP-Java Integration ist nicht
dargestellt
27Domino PHP
- single Server (Domino Apache)
- multi Server (Domino Apache)
- PHP Integration Kit for WebSphere Application
Server Community Edition - siehe Artikel auf alphaWorks
- http//www.alphaworks.ibm.com/tech/phpintwasce
28Single Server Konfiguration
1. Möglichkeit zwei httpd mit diff. Ports
Abarbeitung des php Scripts kommt später!
Configuring Apache, PHP, MySQL and Domino for
Windows 2000 (...) 1. Edit httpd.conf2. Add the
following lines to the end of the
fileLoadModule proxy_module modules/mod_proxy.s
oLoadModule proxy_http_module modules/mod_proxy_h
ttp.soLoadModule rewrite_module
modules/mod_rewrite.soRewriteEngine
onRewriteRule (.).nsf(.) http//localhost811
.nsf2 P
Apache
Domino
mod_rewrite
Httpd Port 81
Httpd Port 80
Quelle http//www.notestips.com/80256B3A007F2692/
1/NAMO5RX3PX
Browser Request
29PROBLEM die Lösung funktioniert nur für anonymen
read only - Zugriff
(...) In this configuration Port 81 can be
blocked on your firewall as traffic to port 81 is
only carried internally to the server. However
this configuration has problems if you want to
use it for more than Read Only pages. When you
authenticate with the Domino server the server
returns you to the URL it authenticated you with,
which is the URL that was passed from Apache,
which results in the browser displaying the
internal port after login (see below), of course
if this port is blocked by your firewall you will
get a 404, however, as you are now authenticated
with Domino we can remove the 81 from the URL
(the blocked port) and the page will display
fine. This is because at this point Domino is
simply serving the page and not authenticating
you. This behaviour is "as expected" and Apache
has a method of dealing with such returning URLs.
(...) Quelle http//www.notestips.com/80256B3A007
F2692/1/NAMO5RX3PX Domino_PHP_Install.pdf
30Single Server Konfiguration
Quelle http//www-10.lotus.com/ldd/nd6forum.nsf/0
/f4833adee01587cb852570480078f52d?OpenDocument Su
SE 8.2 - Domino 6.5.4 - PHP - can work!Posted by
Alfa Tecnologias on 24.Jul.05 at 0601 PM using a
Web browserCategory Domino ServerRelease
6.5.4Platform Linux - SuSE (...) 1. Schritt
Installation PHP (...) 3. With Domino
AdministratorOpen your server,Select your
Server Document and create a "Web URL
mapping/redirection"( or a Internet Site
Rule)Specify the following- "URL --gt
Directory"- incoming /php-bin- Target
/usr/bin- Access ExecuteSave and closeRestart
HTTP (tell http restart)(...) DOMINO_PHP_CGI.pdf
2. Möglichkeit Domino httpd mit PHP via cgi
Domino
cgi
PHP runtime
Httpd Port 80
Windows
Browser Request
31Dual Server Installation
PHP-Script lt?PHP ... Autorisierung via Notes
User (Funktionsuser) ... Abfrage
Daten ... Verarbeitung Ergebnis ?gt
Apache
Domino
DXL DSAPI WebServ
Httpd Port 80
Httpd Port 80
Browser Request
32Dual Server Installation
PHP-Script lt?PHP ... Autorisierung ... Abfrage
Daten ... Verarbeitung Ergebnis ?gt
DB2 / Cloudscape
Apache
API
Domino
DSAPI DXL WebServ
Httpd Port 80
Browser Request
Httpd Port 80
33Agenda
- Domino Geschichte Basisinformationen
- PHP im Kontext der IBM Software
- DB2 / Cloudscape, Sametime, Domino
- PHP Notes Connector
- Funktionsübersicht
- Beispiel
34PHP DB2 / Cloudscape
- Zend Core for IBM
- einfache Installation / Setup
- liefert alle benötigten DB2 UDB, Cloudescape und
3rd party libraries - NEU mit kostenloser DB2-C
- Cloudescape Anwendungen können problemlos auf DB2
umgestellt werden (gleiche API) - Webserver Betriebssysteme
- Apache 1.3.x, 2.0.x
- AIX 5.2, 5.3
- Linux RHEL 3, SLES 9
- PHP, DB2 UDB und Cloudescape online Dokumentation
- Integriert mit Zend PlatformTM
35PHP Sametime
- Integration via STLinks
- Java Script Code wird in PHP Script integriert
- Namensfeld notwendig für Awarnes-Funktion
- Login am Sametime Server aus PHP Anwendung
- Apache Sametime Login ? gtgtgt LDAP
Authentifizierung - STLinks Ergänzung für Sametime Server notwendig
(kostenlose Erweiterung) - IBM Redpaper verfügbar
- behandelt die Nutzung von STLinks in HTML
Websites - Lotus Instant Messaging/Web Conferencing
(Sametime) Building Sametime-Enabled
Applications - http//www.redbooks.ibm.com/redbooks/pdfs/sg247037
.pdf
36PHP Domino
- ab Domino 5
- PHP kann zunächst einmal jeden XML Output des
Domino Servers verarbeiten - mit Domino 7
- Nutzung der Domino Webservices durch PHP
- mit PHP 5
- wurde das XML Handling und die Arbeit mit
Webservices erweitert und verbessert
37LAMP Domino Single Server Installation
- Nicht mit Standardkonfiguration möglich
- Mod_rewrite notwendig
- Veranlast Apache .nsf Anfrage durchzuleiten
- Domino Server Konfig
- HTTP Port ungleich Apache Port
- ....
- (Google liefert eine (englische?) Website mit
guter Erklärung)
38Agenda
- Domino Geschichte Basisinformationen
- PHP im Kontext der IBM Software
- DB2 / Cloudscape, Sametime, Domino
- PHP Notes Connector
39Agenda
- Interner Aufbau von Lotus Notes
- Zugriff auf Notes Daten
- Datenbanktreiber, Objekte
- HTTP, XML
- Notes Connector
- Besonderheiten, Bewertung
40Interner Aufbau von Lotus Notes
- Notes Datenbank Container für Datensätze
- enthält beliebig viele verschiedene Notes
- Note Datensatz
- enthält beliebig viele verschiedene Items
- Item Container für Daten
- speichert Daten (z.B. Zahl, Text oder Richtext)
- Alle Informationen einer Datenbank werden als
Notes gespeichert, Notes mit Nutzdaten werden als
Dokumente bezeichnet - Gesamte Applikation in einer Datenbankdatei, auch
Gestaltung und Sicherheit
41Notes - Dokument/Form/View
Dokument Items
Form Anzeige/Bearbeitung
View
42Interner Aufbau von Lotus Notes - Sicherheit
- Personen, Gruppen, Rollen und Richtlinien
- Zugriffsrechte für Datenbanken, Dokumente und
Felder - Verschlüsselung für Datenbankenund Felder
43Zugriff auf Notes Daten - Topologie
44Zugriff auf Notes Daten - Datenbanktreiber
- Lotus Notes ist keine relationale Datenbank
- ODBC Treiber für Windows Anwendungen verfügbar
- DB2 als Datenspeicher für Lotus Notes befindet
sichim Test Stadium. - Werkzeuge zum Datenabgleich zwischen Lotus Notes
und relationalen Datenbanken verfügbar z.B. LEI - Kein aktueller JDBC Treiber verfügbar
45Zugriff auf Notes Daten - Objekte
- Lotus Notes bildet Daten und Funktionen intern in
einem Objektmodell ab. - Front-End Klassen nur im Notes Client verwendbar
- Back-End Klassen
- NotesSession, NotesDatabase,
- NotesDocument, NotesItem,
- NotesDocumentCollection, NotesView
- Notes Objekte können in diversen
Programmiersprachen verwendet werden
46Zugriff auf Notes Daten - Objekte
- COM SchnittstelleVerwendung von Notes Client
Funktionen in anderen Windows Anwendungen - JAVA SchnittstelleLocal oder Remote über CORBA
verwendbar,Domino Internet InterOrb Protocol
läuft als eigener Task im Domino ServerAchtung!
Threading, Sessionhandling, Recycle
47Zugriff auf Notes Daten - Objekte
- Notes APIPlattformabhängige C/C Programme und
Server Erweiterungen - Fast alles ist möglich, DSAPI Programme laufen
z.B. als "Filter" im HTTP Stack des Servers - Achtung! Kleinste Fehler können katastrophale
Folgen haben
48Zugriff auf Notes Daten - HTTP
- Domino Server kann standardmäßig HTML Code
erzeugen, eigener oder fremder HTTP Stack - Mail Anwendung (Domino Web Access) sehr
leistungsfähig - Mit Domino OffLine Service kann eine Notes
Maildatenbank über Webbrowser in eine Lokale
Cloudscape Datenbank repliziert werden - HTTP Zugriffe lassen sich für Datenbanken und
Designelemente generell sperren
49Zugriff auf Notes Daten - Domino XML Language
- Ziel Abbildung aller Notes Datenstrukturen als
XML Code - ReadViewEntries URL Parameter der die Daten in
einem View als DXL Code liefert - Demo
50Domino XML Language - ReadViewEntries
http//www.visol.de/ezdemo.nsf/menuflat?ReadViewEn
tries
51Domino XML Language - Dokument
52Zugriff auf Notes Daten - Domino XML Language
- Ziel Abbildung aller Notes Datenstrukturen als
XML Code - ReadViewEntries URL Parameter der die Daten in
einem View als DXL Code liefert - Problem Es existiert kein URL Parameter der
Dokumente als DXL Code liefert. - Lösung Selbst ein Programm schreiben das die
Notes Objekte anspricht - Einfacher NotesConnector verwenden
53NotesConnector - Architektur
54NotesConnector - Eigenschaften
- Generische Lösung zum Zugriff auf Lotus Notes
Daten - ermöglicht den lesenden und schreibenden Zugriff
auf Text-, Datum- und Zahlen-Felder in beliebigen
Notes-Datenbanken. - Keine Veränderungen in den Notes Anwendungen
- für den Zugriff auf Ihre Notes-Daten sind keine
speziellen Ansichten in Notes erforderlich der
Zugriff kann direkt auf Dokumente erfolgen. - Kein direkter Webzugriff auf Zieldatenbanken
- Zieldatenbanken müssen nicht für den Webzugriff
geöffnet werden.
55NotesConnector - Eigenschaften
- Unterstützt anonyme und authentifizierte Zugriffe
- Durch die Unterstützung authentifizierter
Zugriffe können Sie die komplette Notes-Security
für Ihre Notes-Anwendungen auch weiterhin nutzen. - Nutzbar für beliebige PHP-Anwendungen
- Spezielle Version für eZ Publish
- Die Extension wird einfach in eZ Publish
aktiviert und ermöglicht so die komfortable
Nutzung der leistungsfähigen eZ publish
Templatesprache für Zugriffe auf Notes Daten. - Verfügbar als Script-Lösung in einer Notes
Datenbank oder als DSAPI-Filter
56Notes Connector - Funktionen
- Datenzugriff
- Dokumentenmodus
- Viewmodus
- Dokumentenselektion
- Einzelselektion
- Mehrfachselektion
- über Notes-View
- über _at_Function
- über Volltext-Suche
- Feldselektion
57Notes Connector - Funktionen
- Unterstützte Notes Datentypen
- Text / Text-List
- Number / Number-List
- Date/Time / Date/Time-List
- Attachments
- Lesender und schreibender Zugriff
- Allen Daten werden als Array übertragenerlaubt
einfaches durchloopen in PHP - Notes RichText (formatierter Text, eingebettete
Objekte) nur als Abstract bzw. mit zusätzlichen
Mitteln
58Notes Connector - Demo
- Einfache PHP-Beispiele
- Bistro, Mensa, etc.
- Kalender
- Integration in eZ publish
- Kalender
- Mitarbeiter
59Zugriff auf Notes Daten - Besonderheiten
- Jedes Dokument kann völlig unterschiedliche Items
enthalten - Items mit gleichem Namen können unterschiedlichen
Types sein - Leere Items sind immer Text Items
- Items können eine Liste von Texten, Zahlen oder
Datum/Uhrzeitwerten enthalen - Notes Richtext ist nicht gleich RTF
60Zugriff auf Notes Daten - Bewertung
- Datenbankorientiert Domino als Datenbankserver
- ODBC - Windows Standardprotokoll
- Notes auf DB2 / LEI - Notes Daten in Relationalen
Datenbanken - Objekt- / Funktionsorientiert Domino als
Applikationsserver - COM -gt Windows Client Anwendungen
- JAVA / CORBA -gt Königsweg der IBM
- C/C API -gt (fast) alles Geht, hoher Aufwand
61Zugriff auf Notes Daten - Bewertung
- HTTP Zugriff Domino als Webserver
- Plain HTML -gt schnell und einfach (parsen oder
einbetten) - DWA -gt leistungsfähig, als Frame einbetten (nur
Mail) - XML / DXL Domino als Datenquelle
- ReadViewEntries -gt performant aber eingeschränkt
nutzbar - NotesConnector -gt universell
- RSS Datenbank -gt wie NotesConnector(LS) für RSS
Feeds - SOAP -gt selbst programmieren oder NotesConnector
verwenden
62Notes Connector - Resourcen
- QA Fragen zum Vortrag?
- Fragen, Anregungen, Projektanfragen php_at_visol.de
- Sonstige ViSol-Leistungen Beratung,
Integrationssupport, Projektlösungen - Weitere Informationen / Downloads unter
http//www.visol.de/php - Produktflyer als PDF
- Artikel aus PHP-Magazin 4/2006
- Kostenlose PHP-Klasse (View-Connector)
- Notes Connector Demo Version
63IBM Resourcen
- IBM Partnership Solution Center
- Anlaufstelle für Developer
- Informationen zum IBM Business Partner Programm
- www.ibm.com/developerworks/
- www.redbooks.ibm.com