Anwendungsportierung die wichtigsten Fragen Ralf Seiffert, Lotus Development GmbH Wichtige Frage zur Anwendungsmigration Ist Ist Ihre Ihre Domino Domino Anwendung Anwendung "Self "Self Contained"? Contained"? Macht Macht Ihre Ihre Anwendung Anwendung externe externe Aufrufe? Aufrufe? Enthält Enthält sie sie hardcodierte hardcodierte Dateiaufrufe? Dateiaufrufe? Gibt Gibt es es spezielle spezielle hardcodierte hardcodierte Import-/Exportfunktionen? Import-/Exportfunktionen? Code Code überprüfen überprüfen auf auf Gross-/Kleinschreibung Gross-/Kleinschreibung Nutzen Nutzen Sie Sie CASE CASE (Computer (Computer Aided Aided Software Software Engineering) Engineering) Werkzeuge? Werkzeuge? Nutzt Nutzt sie sie Plattformspezifikas? Plattformspezifikas? Gibt Gibt es es spezielle spezielle eingebettete eingebettete Objekte? Objekte? Nutzt Nutzt sie sie Windows-spezifische Windows-spezifische Funktionen? Funktionen? Nutzten Nutzten Sie Sie einen einen Compiler Compiler der der betriebssystemabhängige betriebssystemabhängige Bibliotheken Bibliotheken aufruft? aufruft? Ist die Anwendung "Self Contained"? "Self Contained" sind Anwendungen, die: komplett komplett innerhalb innerhalb des des Domino Domino Server Server ablaufen ablaufen LotusScript LotusScript (oder (oder Javascript) Javascript) nutzen nutzen keine keine externen externen Aufrufe Aufrufe machen machen keine keine Verbindung Verbindung zu zu externen externen Dateien Dateien haben haben kein kein Import/Export Import/Export von von Daten Daten durchführen durchführen Macht Ihre Anwendung externe Aufrufe? Von Linux unterstützt externe Anwendungen: JDBC JDBC Corba/ Corba/ IIOP IIOP POP3 POP3 LDAP LDAP IMAP4 IMAP4 Externe Anwendunge, die z.Zt. nicht von Domino on Linux unterstützt werden: Active Active X X OLE OLE DDE DDE Visual Visual Basic Basic COM COM // DCOM DCOM Enthählt die Anwendung hardcodierte Dateiaufrufe? Beispiele: Windows Windows oder oder DOS DOS Namen Namen c:\domino\data\test.nsf c:\domino\data\test.nsf UNC UNC (Universal (Universal Naming Naming Convention) Convention) Namen Namen \\serverxx\share\directory\db.nsf \\serverxx\share\directory\db.nsf Diese Dateireferenzen werden von Linux nicht unterstützt und müssen nach Unix Dateireferenzen geändert werden Gibt es spezielle hardcodierte Import-/Exportfunktionen? Object Object Linking Linking and and Embedding Embedding (OLE) (OLE) Links Links Windows/DOS Windows/DOS Dateiumsetzer Dateiumsetzer (Outside (Outside In, In, etc.) etc.) Windows/DOS Windows/DOS Dateibetrachter Dateibetrachter Code überprüfen auf Gross-/Kleinschreibung Windows, DOS und Webanwendungsentwicklungswerkzeuge sind nicht Case-sensitiv. Aber UNIX ist es ! Fehlerursachen sind: Dateinamen werden nicht gefunden Externe Scriptaufrufe schlagen fehl Links oder Hotspots funktionieren nicht mehr Nutzen Sie C.A.S.E. Tools? Viele Viele Entwickler Entwickler nutzen nutzen CASE CASE Tools Tools als als Hilfe Hilfe zur zur Anwendungsentwicklung: Anwendungsentwicklung: Debugging Debugging Multi-Media Multi-Media Kompilieren Kompilieren Authoring Authoring Installer Installer Versionskontrolle Versionskontrolle Hilfewerkzeuge Hilfewerkzeuge Defect Defect Management Management Utility-Erstellung Utility-Erstellung Viele Viele dieser dieser Werkzeuge Werkzeuge sind sind für für Nicht-UNIX Nicht-UNIX Betriebssysteme Betriebssysteme erstellt erstellt worden worden und und ihr ihr Code Code könnte könnte inkompatible inkompatible zu zu UNIX/Linux UNIX/Linux sein. sein. Nutzt sie Plattformspezifikas? NT NT Registry Registry Synchronisation Synchronisation für für Nutzerregistrierung Nutzerregistrierung DB2/400 DB2/400 optimierter optimierter Datenzugriff Datenzugriff Zugiff Zugiff auf auf NT NT Dienste Dienste jeder jeder Art Art Gibt es spezielle eingebettete Objekte? Active-X Active-X Controls Controls SameTime SameTime Anwendungen Anwendungen Doc Doc Links Links zu zu Windows/DOS Windows/DOS Textverarbeitung Textverarbeitung Windows Windows SysTray SysTray abhängige abhängige Anwendungen Anwendungen Eingebettete Eingebettete Objekte Objekte von von Nicht-Unix Nicht-Unix Kompatiblen Kompatiblen Anwendungen Anwendungen (1-2-3 (1-2-3 Dateien, Dateien, etc.) etc.) Nutzt sie Windows-spezifische Funktionen? Windows Windows oder oder DOS DOS spezifische spezifische Funktionen Funktionen arbeiten arbeiten nicht nicht unter unter Linux.: Linux.: OLE OLE Active-X Active-X ODBC ODBC Drivers Drivers Visual Visual J++ J++ Active Active Server Server Pages* Pages* Nutzten Sie einen Compiler der betriebssystemabhängige Bibliotheken aufruft? Viele Viele Compiler Compiler rufen rufen Betriebssystembibliotheken Betriebssystembibliotheken auf. auf. Jeden Jeden Bibliotheksaufruf Bibliotheksaufruf des des Compilers Compilers überprüfen, überprüfen, ob ob er er von von Linux Linux unterstützt unterstützt wird. wird. Anwendungsentwicklung Erweiterte Erweiterte Anwendungen Anwendungen Spezielle Spezielle Zusätze Zusätze für für Entwickler Entwickler API API API API Support Support für für Linux Linux Java Java Support Support Nutzungsbereich Nutzungsbereich 1. Erweiterte Anwendungen Manche Anwendungen sind schwierig zu portieren weil sie folgendes einschliessen: Technologien Technologien oder oder Produkte, Produkte, die die für für Entwickler Entwickler nicht nicht ausbaubar ausbaubar sind sind Technologien Technologien oder oder Produkte, Produkte, die die ihre ihre speziellen speziellen Betriebssystemumgebungen Betriebssystemumgebungen benötigen: benötigen: Domino.Doc Domino.Doc Domino Domino Instant Instant Host Host FAX FAX for for Domino Domino Quickplace Quickplace Domino Domino Hot Hot Media Media MSD Sametime Learning Space 1. Stand der Planung Operating System IISP/ASP SP/ASP Distance Distance Learning Learning KM KM AIX Solaris SPARC Linux OS/400 OS/390 ASP Solution Pack H1 2000 H2 2000 QuickPlace H2 2000 H2 2000 Sametime H2 2000 H2 2000 H2 2000 LS Forum Available Available Available Available Raven H2 2000 H2 2000 Extended Search H2 2000 H1 2001 Domino.Doc Available Available Available H1 2000 H2 2000 H2 2000 Available LS "Athena" Fax Domino Workflow H1 2000 Available H2 2000 H2 2000 Port Port Complete Complete or or Underway Underway In In Planning Planning Available Available Not Not Planned Planned 2. Spezielle Zusätze Zusätze für Entwickler, um Anwendungen zu erweitern wie: LEI, LS:DO, Connectors, ESB LSXs MQ Series Java Applets & Servlets Domino Server Agents in Java Diese Konstrukte müssen auf ihre Linux Kompatibilität überprüft werden 3. API Eine gute Lösung für die meisten Kompatibilitätsprobleme ist die Nutzung des Domino API um die Funktionalität einer Anwendung zu erweitern Lotus Domino Driver for JDBC Version 1.1 Lotus Domino Toolkit for Java/Corba 2.0 Lotus C/C++ API ODBC Linux-based Application APIs Client-based Application APIs Notes Agent 4. API Support für Linux Notes C++ API: Erstellen, löschen und ändern aller Designnotes (eingeschlossen DB's, Dokumente, Felder) Volltextsuche Editeren von ACL's Mail erstellen/senden Richtext Editierfunktionen mittels Cursors Server und Menu Add-in Programme Notes C API's: Wie C++ API Extension Manager Add-Ins, DB-hook Treiber Spezialfunktionen für Gateways und Billing Kalender und Zeitplanungsfunktionen Dokumente in / aus Ordnern 5. Java Support Download Download jitc jitc Compiler Compiler von von Red Red Hat Hat IBM IBM JVM JVM v1.1.8 v1.1.8 unterstützt unterstützt IBM IBM VisualAge VisualAge for for Java Java ist ist verfügbar verfügbar IBM IBM Developer's Developer's Kit Kit for for Linux Linux ,, Java Java Technology Technology Edition, Edition, version version 1.1.8 1.1.8 6. Nutzungsbereich Wenn man für eine Linux Distribution entwickelt, läuft die Anwendung auch auf Anderen? Ja! So lange keine distributionsabhängigen Tools oder Programme aufgerufen werden.