/[cvs]/nfo/perl/scripts/outlook2ldap/libs/Torus.pod
ViewVC logotype

Annotation of /nfo/perl/scripts/outlook2ldap/libs/Torus.pod

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations)
Tue Jan 21 22:06:55 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
Changes since 1.2: +9 -4 lines
+ updated

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

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed