630 likes | 764 Views
Notes PHP Connector. zwei Welten verbinden. Abstract.
E N D
Notes PHP Connector zwei Welten verbinden
Abstract 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.
Disclaimer 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 IBM’s 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.
Referenten • Stefan Weber (Dipl.-Inf.) • Visual Solutions, Iserlohn • www.visol.de • weber@visol.de • Andreas Schulte • IBM Partnership Solution Center NordWest • www.ibm.com/de/mittelstand/psc/ • andreas.schulte@de.ibm.com
Visual Solutions... entwickelt Kommunikations-lösungen für mittelständische Unternehmen und gestaltet Kommunikationsschnittstellen zu Marktpartnern. • Lotus/IBM Business Partner seit 1997 • Schwerpunkt Web-Entwicklung: Content-Management, E-Commerce, Barrierefreie Gestaltung • Database Publishing, Medienneutrale Datenbanken • IBM Partnership Solution Center NordWest • Teil der IBM Mittelstands- und Developer Relations Organisation • PSCs in: Berlin, Hamburg, Düsseldorf, Frankfurt, Stuttgart, München • Unterstützung für IBM Business Partner durch: • Consulting • Workshops & Enablement • Porting • Testing • Unterstützung et al Unternehmens Info
Agenda • Notes – Geschichte & Basisinformationen • PHP im Kontext der IBM Software • DB2 / Cloudscape, Sametime, Domino • PHP Notes Connector • Funktionsübersicht • Beispiel
Agenda • Notes – Geschichte & Basisinformationen • PHP im Kontext der IBM Software • DB2 / Cloudscape, Sametime, Domino • PHP Notes Connector • Funktionsübersicht • Beispiel
Lotus Notes communicate, collaborate, coordinate Maske View Feld .nsf 9-Boxen-Modell Grundideen Domino Server eMail & PIM Anwendungsserver .ntf Anwendungs-Templates
9-Boxen-Modell Reichweite Extern Unternehmen Team Komplexität Kommunikation Zusammenarbeit Koordination
9-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 Zusammenarbeit Koordination
Die 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
1996 - Notes R4 Notes/Domino R4.5 Personal Productivity Groupware and Collaboration 1993 - Notes R3 1991 – Notes R2 Lotus 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
Notes Begriffe • .nsf • Feld • Maske / Form • View • Replikation
Notes 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...
Text Date/Time Number Dialog Liste Checkbox Radio button Listbox Combobox Rich Text Authors Names Readers Password Formula Time zone Rich Text Lite Color Notes Feld
Maske • Notes speichert Datenin losem Schema • Masken geben Vorgabe bei der Erstellung von Dokumenten
Replikation • 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
Domino 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 Betriebssystemversionen und Verzeichnisdiensten
offene Strukturen HTTP & XML Webservices CGI, PERL, SSI, DSAPI Java Servlet Engine SMTP, IMAP, MAPI, POP, LDAP Open Client Access NNTP Notes IIOP Open Development OBJECT SERVICES API (OLE,COM, Java, JavaScript, LS, C++, XML,CORBA) C&S FREE TIME SEARCH APPLICATION LOGIC MESSAGING ROUTING Application Services DECS WORKFLOW SCH & TRIGGERED AGENTS SEARCH ENGINE Infrastructure Services VIEW INDEXING DIRECTORY REPLICATION ROLES BASED ACCESS RSA & S/MIME ENCRYPTION ACCESS CONTROL DIGITAL SIGNATURES Dual Security - Notes & Web SECURITY OBJECT STORE Databases & Templates NSF NTF NSF NTF ADVANCED SERVICES CLUSTERING NOTES & WEB BILLING PARTITIONING Enterprise Services Cross Platform NT, OS/2, AS/400, S/390, AIX, HP-UX, Solaris, LINUX
Domino 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
Anwendungsentwicklung • @Funktions • Lotus Script • Java Script • Java • PHP
Schnittstellen (-Standards) • SMTP, NNTP, POP3, IMAP • vCard • iCal • CORBA • WebServices • XML-Import/Export (DXL) • Datenpumpen • Support für RIM & mobile Endgeräte
Domino 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
PIM & Standard-Anwendungen • eMail, Kalender & Aufgabenverwaltung • Diskussion • Teamroom • Dokumenten-Bibliothek • RSS-Feed-Generator • Blog-Template
Lotus Notes Eclipse Rich Client WMC HTML Browser Everyplace WPS Excel PDF Zend Core .NSF .NSFDB2 DB2 / Cloudscape (RDBMS) Windows, AIX, i5, Unix, Linux Architektur – Domino zentrierte Betrachtung Web Service DXL Sametime Anmerkung: PHP-Java Integration ist nicht dargestellt
Domino & 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
Single 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.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule rewrite_module modules/mod_rewrite.soRewriteEngine onRewriteRule ^(.*).nsf(.*) http://localhost:81$1.nsf$2 [P] Apache Domino mod_rewrite Httpd Port 81 Httpd Port 80 Quelle: http://www.notestips.com/80256B3A007F2692/1/NAMO5RX3PX Browser Request
PROBLEM: 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/80256B3A007F2692/1/NAMO5RX3PX Domino_PHP_Install.pdf
Single Server Konfiguration Quelle: http://www-10.lotus.com/ldd/nd6forum.nsf/0/f4833adee01587cb852570480078f52d?OpenDocument SuSE 8.2 - Domino 6.5.4 - PHP - can work!Posted byAlfa Tecnologiason 24.Jul.05 at 06:01 PMusing 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 --> 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 PHP runtime cgi Httpd Port 80 Windows Browser Request
Dual Server Installation PHP-Script <?PHP ... Autorisierung via Notes User (Funktionsuser) ... Abfrage Daten ... Verarbeitung Ergebnis ?> Apache Domino DXL DSAPI WebServ Httpd Port 80 Httpd Port 80 Browser Request
Dual Server Installation PHP-Script <?PHP ... Autorisierung ... Abfrage Daten ... Verarbeitung Ergebnis ?> DB2 / Cloudscape Apache API Domino DSAPI DXL WebServ Httpd Port 80 Browser Request Httpd Port 80
Agenda • Domino – Geschichte & Basisinformationen • PHP im Kontext der IBM Software • DB2 / Cloudscape, Sametime, Domino • PHP Notes Connector • Funktionsübersicht • Beispiel
PHP & 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
PHP & 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 ? >>> 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
PHP & 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
LAMP & 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)
Agenda • Domino – Geschichte & Basisinformationen • PHP im Kontext der IBM Software • DB2 / Cloudscape, Sametime, Domino • PHP Notes Connector
Agenda • Interner Aufbau von Lotus Notes • Zugriff auf Notes Daten • Datenbanktreiber, Objekte • HTTP, XML • Notes Connector • Besonderheiten, Bewertung
Interner 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
Notes - Dokument/Form/View Dokument: Items Form: Anzeige/Bearbeitung View:
Interner Aufbau von Lotus Notes - Sicherheit • Personen, Gruppen, Rollen und Richtlinien • Zugriffsrechte für Datenbanken, Dokumente und Felder • Verschlüsselung für Datenbankenund Felder
Zugriff 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
Zugriff 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
Zugriff auf Notes Daten - Objekte • COM Schnittstelle:Verwendung von Notes Client Funktionen in anderen Windows Anwendungen • JAVA Schnittstelle:Local oder Remote über CORBA verwendbar,Domino Internet InterOrb Protocol läuft als eigener Task im Domino ServerAchtung! Threading, Sessionhandling, Recycle
Zugriff auf Notes Daten - Objekte • Notes API:Plattformabhä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
Zugriff 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
Zugriff 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
Domino XML Language - ReadViewEntries http://www.visol.de/ezdemo.nsf/menuflat?ReadViewEntries