| 1 | joko | 1.1 | <HTML> | 
| 2 |  |  | <HEAD> | 
| 3 |  |  | <TITLE>Torus</TITLE> | 
| 4 |  |  | <LINK REV="made" HREF="mailto:"> | 
| 5 |  |  | </HEAD> | 
| 6 |  |  |  | 
| 7 |  |  | <BODY> | 
| 8 |  |  |  | 
| 9 |  |  | <A NAME="__index__"></A> | 
| 10 |  |  | <!-- INDEX BEGIN --> | 
| 11 |  |  |  | 
| 12 |  |  | <UL> | 
| 13 |  |  |  | 
| 14 |  |  | <LI><A HREF="#name">NAME</A></LI> | 
| 15 |  |  | <LI><A HREF="#description">DESCRIPTION</A></LI> | 
| 16 |  |  | <LI><A HREF="#news">NEWS</A></LI> | 
| 17 |  |  | <UL> | 
| 18 |  |  |  | 
| 19 |  |  | <UL> | 
| 20 |  |  |  | 
| 21 |  |  | <UL> | 
| 22 |  |  |  | 
| 23 |  |  | <LI><A HREF="#20030118  initial checkin">2003-01-18  -  initial check-in</A></LI> | 
| 24 |  |  | </UL> | 
| 25 |  |  |  | 
| 26 |  |  | </UL> | 
| 27 |  |  |  | 
| 28 |  |  | </UL> | 
| 29 |  |  |  | 
| 30 |  |  | <LI><A HREF="#requirements">REQUIREMENTS</A></LI> | 
| 31 |  |  | <LI><A HREF="#authors / copyright">AUTHORS / COPYRIGHT</A></LI> | 
| 32 |  |  | <LI><A HREF="#contributors">CONTRIBUTORS</A></LI> | 
| 33 |  |  | <LI><A HREF="#support / warranty">SUPPORT / WARRANTY</A></LI> | 
| 34 |  |  | <LI><A HREF="#bugs">BUGS</A></LI> | 
| 35 |  |  | <LI><A HREF="#todo">TODO</A></LI> | 
| 36 |  |  | <LI><A HREF="#ideas">IDEAS</A></LI> | 
| 37 |  |  | </UL> | 
| 38 |  |  | <!-- INDEX END --> | 
| 39 |  |  |  | 
| 40 |  |  | <HR> | 
| 41 |  |  | <P> | 
| 42 |  |  | <HR> | 
| 43 |  |  | <H1><A NAME="name">NAME</A></H1> | 
| 44 |  |  | <P>Torus</P> | 
| 45 |  |  | <P> | 
| 46 |  |  | <HR> | 
| 47 |  |  | <H1><A NAME="description">DESCRIPTION</A></H1> | 
| 48 |  |  | <PRE> | 
| 49 |  |  | Torus is a module to ease migration from Outlook.</PRE> | 
| 50 |  |  | <PRE> | 
| 51 |  |  | Torus uses CPAN's Win32::OLE to access Microsoft's MAPI locally and | 
| 52 |  |  | CPAN's Net::LDAP to connect to a remote OpenLDAP-server (slapd).</PRE> | 
| 53 |  |  | <PRE> | 
| 54 |  |  | Access to these storage-implementations is wrapped via Data::Storage. | 
| 55 |  |  | Core functionality of Torus is currently provided from Data::Transfer::Sync.</PRE> | 
| 56 |  |  | <PRE> | 
| 57 |  |  | We are starting with Contacts/Adresses, will go along with Messages, | 
| 58 |  |  | Calendar-Items and Journaling-Features. | 
| 59 |  |  | The "rest" should be able to be modeled and implemented on top of this.</PRE> | 
| 60 |  |  | <PRE> | 
| 61 |  |  | This is more a reference implementation than anything actually useful.  ;-) | 
| 62 |  |  | You'll also like to take a look at: | 
| 63 |  |  | - Kroupware Project: <A HREF="http://kroupware.kde.org">http://kroupware.kde.org</A> | 
| 64 |  |  | - Outlook Connector Project: <A HREF="http://otlkcon.sourceforge.net">http://otlkcon.sourceforge.net</A> | 
| 65 |  |  | - bynari InsightConnector: <A HREF="http://bynari.net/index.php?id=7">http://bynari.net/index.php?id=7</A></PRE> | 
| 66 |  |  | <P> | 
| 67 |  |  | <HR> | 
| 68 |  |  | <H1><A NAME="news">NEWS</A></H1> | 
| 69 |  |  | <P> | 
| 70 |  |  | <H4><A NAME="20030118  initial checkin">2003-01-18  -  initial check-in</A></H4> | 
| 71 |  |  | <P> | 
| 72 |  |  | <HR> | 
| 73 |  |  | <H1><A NAME="requirements">REQUIREMENTS</A></H1> | 
| 74 |  |  | <PRE> | 
| 75 |  |  | Win32::OLE | 
| 76 |  |  | Net::LDAP | 
| 77 |  |  | Data::Storage | 
| 78 |  |  | Data::Transfer::Sync | 
| 79 |  |  | ... and all their dependencies</PRE> | 
| 80 |  |  | <P> | 
| 81 |  |  | <HR> | 
| 82 |  |  | <H1><A NAME="authors / copyright">AUTHORS / COPYRIGHT</A></H1> | 
| 83 |  |  | <PRE> | 
| 84 |  |  | The Data::Storage module is Copyright (c) 2002 Andreas Motl. | 
| 85 |  |  | All rights reserved.</PRE> | 
| 86 |  |  | <PRE> | 
| 87 |  |  | You may distribute it under the terms of either the GNU General Public | 
| 88 |  |  | License or the Artistic License, as specified in the Perl README file.</PRE> | 
| 89 |  |  | <P> | 
| 90 |  |  | <HR> | 
| 91 |  |  | <H1><A NAME="contributors">CONTRIBUTORS</A></H1> | 
| 92 |  |  | <PRE> | 
| 93 |  |  | Jan Hoffmann <jan@romain-volk.com> | 
| 94 |  |  | Sebastian Utz <s.utz@tunemedia.de></PRE> | 
| 95 |  |  | <P> | 
| 96 |  |  | <HR> | 
| 97 |  |  | <H1><A NAME="support / warranty">SUPPORT / WARRANTY</A></H1> | 
| 98 |  |  | <PRE> | 
| 99 |  |  | Data::Storage is free software. IT COMES WITHOUT WARRANTY OF ANY KIND.</PRE> | 
| 100 |  |  | <P> | 
| 101 |  |  | <HR> | 
| 102 |  |  | <H1><A NAME="bugs">BUGS</A></H1> | 
| 103 |  |  | <P> | 
| 104 |  |  | <HR> | 
| 105 |  |  | <H1><A NAME="todo">TODO</A></H1> | 
| 106 |  |  | <PRE> | 
| 107 |  |  | - outlook2ldap - essential modules: | 
| 108 |  |  | - Net::LDAP | 
| 109 |  |  | - Convert::ASN1 / BER1 | 
| 110 |  |  | - Unicode::String | 
| 111 |  |  | - MIME::Base64 | 
| 112 |  |  | o use setup.pm with autoinstall, use ExtUtils::MakeMaker and/or h2xs | 
| 113 |  |  | o enhance mapping through expressions | 
| 114 |  |  | o provide multiple use of same fields | 
| 115 |  |  | o provide mechanism to concatenate fields | 
| 116 |  |  | --> see etc/_future! | 
| 117 |  |  | o make integrated setup | 
| 118 |  |  | o provide gui(s) | 
| 119 |  |  | o development (create mappings and stuff (testing, ...)) | 
| 120 |  |  | o productive use (control sync-processing at a central console) | 
| 121 |  |  | o little hotsync-button (iconbar bottom-right) which provides some actions and some configuration-settings (put ACLs on these settings?) | 
| 122 |  |  | o move libs/Torus to nfo-modules, exclude various metadata needed to actually sync with ldap and mappings (csv-files) | 
| 123 |  |  | o provide example to sync with mysql/Tangram/mbox/... | 
| 124 |  |  | o integrate genSchema.pl | 
| 125 |  |  | o regeln: | 
| 126 |  |  | o 3.spalte in outlook_ole_fields.csv: für "genSchema.pl" | 
| 127 |  |  | o wenn 2.spalte und/oder 3. leer, dann wird kein mapping gemacht (genSchema sowieso nicht) | 
| 128 |  |  | --> see etc/_future! | 
| 129 |  |  | o daten "rückwärts" übertragen! | 
| 130 |  |  | o mapping aufbohren (csv -> xml) - integrate "schema"-property _per-field_!!! | 
| 131 |  |  | o have the engine use this | 
| 132 |  |  | o maybe provide cross-checks | 
| 133 |  |  | --> see etc/_future! | 
| 134 |  |  | o transfer statistics | 
| 135 | joko | 1.2 | o zugriff auf outlook (2002) ohne rückfrage gewähren? | 
| 136 | joko | 1.1 | o v.a. wichtig, wenn integrierter zugriff (z.b. durch outlook-plugin) stattfindet | 
| 137 |  |  | + verwenden _aller_ attribute, die mit einem address-eintrag assoziiert sein können? | 
| 138 |  |  | + mileage (reisekilometer) kommt! | 
| 139 |  |  | + bis dato unbekannte mapi-felder sollten nun auch verwendet werden können | 
| 140 |  |  | o declare folder-mapping inside xml-file | 
| 141 |  |  | o check-before-delete doesn't seem to work (again!) | 
| 142 |  |  | o make basedn configurable | 
| 143 |  |  | o introduce host-to-basedn-mapping | 
| 144 |  |  | o provide additional fallback basedn | 
| 145 |  |  | o maybe additional permissions for folder-autocreation | 
| 146 |  |  | o rework regexes in Torus::Driver::ldap | 
| 147 |  |  | o spaces in ou's? | 
| 148 |  |  | o utf8-encoding for dn's in ou's | 
| 149 |  |  | o also in other property-names (besides the attributes)?! | 
| 150 |  |  | o ä, ö, ü | 
| 151 |  |  | o Insight: | 
| 152 |  |  | o cclient.dll | 
| 153 |  |  | o InsightConnector.dll | 
| 154 |  |  | o folder-mapping | 
| 155 |  |  | o leerzeichen (non-word-chars) do not work inside foldernames | 
| 156 |  |  | o regex fails: | 
| 157 |  |  | o introduce some "highlevel-splitting" of ldap-addresses | 
| 158 |  |  | o fix problems occoured 2003-01-06/07 @barschwaechter: rules, access to mapi, etc. (see email) | 
| 159 |  |  | o do a _true_ sync! (no delete/add) | 
| 160 |  |  | o handle folder-mapping/-creation completely _before_ continuing with single entries | 
| 161 |  |  | o create non-existant and stuff.... | 
| 162 |  |  | o timestamp log-entries | 
| 163 |  |  | o add fieldname-context to ldap_errors.log | 
| 164 |  |  | o regeln für cn/dn - build | 
| 165 |  |  | o wenn "sn" gesetzt, dann nimm "sn" als "cn" | 
| 166 |  |  | o wenn "givenname" gesetzt, dann füge zu "cn" hinzu (bisheriger "build"-Vorgang) | 
| 167 |  |  | o wenn "sn" leer, dann nimm stattdessen "FileAs" als "cn" und ab [Debug Level=1]info | 
| 168 |  |  | o wenn "FileAs" leer, dann nimm stattdessen "FirstName" und ab [Debug Level=1]info | 
| 169 |  |  | o wenn "FirstName" leer, dann nimm stattdessen "CompanyName" und ab [Debug Level=1]info | 
| 170 |  |  | else ab [Debug Level=1] Warn: | 
| 171 |  |  | "Couldn't build DN/CN cause neighter SN/FileAs/FirstName/CompanyName does exist." (Should not happen). | 
| 172 |  |  | o collision checks!!! | 
| 173 |  |  | o convert date-fields | 
| 174 |  |  | o detect must-not-have characters in dn: | 
| 175 |  |  | + replace "+" through "&" | 
| 176 |  |  | o replace "," through "" [Kill] | 
| 177 |  |  | o replace "ô" through "" [to UTF8] | 
| 178 |  |  | o enhance mechanisms to talk to OLE: | 
| 179 |  |  | o use "->EnumAllObjects" | 
| 180 |  |  | o use "->FreeUnusedLibraries" | 
| 181 |  |  | o use "->LastError" | 
| 182 |  |  | o encode "dn" with utf8 | 
| 183 |  |  | o "member" is empty!!! | 
| 184 |  |  | o free resources while processing | 
| 185 |  |  | o Outlook (OLE) | 
| 186 |  |  | o Perl (Variables, Objects) | 
| 187 |  |  | o LDAP-Server (Handle) | 
| 188 |  |  | </PRE> | 
| 189 |  |  | <PRE> | 
| 190 |  |  |  | 
| 191 |  |  | o for Horde: | 
| 192 |  |  | o helper: some kinda "genSchema.pl" | 
| 193 |  |  | o app: LDAP-Browser</PRE> | 
| 194 | joko | 1.2 | <PRE> | 
| 195 |  |  | o split 'syncOutlookContacts.ini' into 'torus.ini' and 'outlook2ldap.ini' | 
| 196 |  |  | o 'syncOutlookContacts.pl' reads 'outlook2ldap.ini' and runs 'feed.pl'</PRE> | 
| 197 | joko | 1.1 | <P> | 
| 198 |  |  | <HR> | 
| 199 |  |  | <H1><A NAME="ideas">IDEAS</A></H1> | 
| 200 |  |  | <PRE> | 
| 201 |  |  | o acl based permissions (use Data::ACL?) | 
| 202 |  |  | o combine Torus::Xyz with Device::Xyz somehow? | 
| 203 |  |  | o assure published stuff contains no client-specific informations (HMI, ...) | 
| 204 |  |  | o CPAN's AppConfig is still needed for now (could this be changed? e.g. using App::Config?) | 
| 205 |  |  | o if not, just include it below "libs" or install "nmake" (through integrated setup) before configuring CPAN | 
| 206 |  |  | (if you already have, do "perl -MCPAN -eshell" and "o conf init" to redo configuration) | 
| 207 |  |  | o rework folder-mapping to use xml | 
| 208 |  |  | o rework field-mapping to use xml (Data::Transfer::Sync!) | 
| 209 |  |  | o rework declaration of while-transfer-rules and after-transfer-patches to xml | 
| 210 |  |  | o example of a "while-transfer-rule" | 
| 211 |  |  | o build "dn" from "cn/sn" | 
| 212 |  |  | o must have "sn" | 
| 213 |  |  | o if no "sn" given, just use "Vorname" | 
| 214 |  |  | o don't allow some special characters inside "dn": '+' seems to get translated to '&' at somewhere in code | 
| 215 |  |  | o example of a "after-transfer-patch-rule" | 
| 216 |  |  | o copy contents of field "x" to field "y" to nivelate(?) access from ldap-query-engines we don't have access to! (the source!) | 
| 217 |  |  | (e.g. query-/search-engines in commercial products like "MS Outlook 2000|2002|Express", | 
| 218 |  |  | which also don't have _any_ mechanism to parametrize them) | 
| 219 |  |  | o write papers about networking (computers _and_ small/embedded/electronic devices (atmel, c-control)) | 
| 220 |  |  | o janosch: how to control arbitrary devices via personal computers _and_ standalone circuits in parallel! | 
| 221 |  |  | (using Device::SerialPort and Conrad C-Control together) | 
| 222 |  |  | o implement infrastructure(s) | 
| 223 |  |  | o actually handle folders (check, autocreation) completely _before_ starting to sync/process items/entries! | 
| 224 |  |  | o provide easy-to-access shell-interface to LDAP (e.g. via Xyz::Xyz or (maybe later) "oedit.pl") | 
| 225 |  |  | o this removes the need for the currently used Java-based Ldap-Client (which will stay more comfortable - of course) | 
| 226 |  |  | o navigate via "cd" through containers, show items/entries via (e.g.) "dump"(?) and stuff... | 
| 227 |  |  | ... the interactive feeling/behaviour is similar to navigating in a filesystem via a commandline-interface (CLI) | 
| 228 |  |  | o sum up "must-have" features of known synchronization-tools for (e.g.) ... | 
| 229 |  |  | o s25@once | 
| 230 |  |  | o siemens custom sync (S45Sync.exe?) | 
| 231 |  |  | o Nokia Communicator | 
| 232 |  |  | o SyncML (it's not a device from a manufacturer, it's actually a XML-standard) -> sync4j@sourceforge | 
| 233 |  |  | o use news (the nntp-protocol) for journalling-functionality | 
| 234 |  |  | o have mapping stored inside ldap as well</PRE> | 
| 235 |  |  |  | 
| 236 |  |  | </BODY> | 
| 237 |  |  |  | 
| 238 |  |  | </HTML> |