/[cvs]/nfo/perl/libs/Data/Transfer/Sync.pod
ViewVC logotype

Diff of /nfo/perl/libs/Data/Transfer/Sync.pod

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Sun Jan 19 02:03:48 2003 UTC revision 1.3 by joko, Sun Feb 9 16:47:40 2003 UTC
# Line 3  Line 3 
3    
4  =head1 NEWS  =head1 NEWS
5    
 =head4 2003-01-18  -  integration with Torus  
6    
7    please look at http://www.netfrag.org/horde/chora/cvs.php/perl/scripts/outlook2ldap/  =head4 2003-02-09  -  backward compatibility with custom application
8    
9      - Tangram <-> .csv
10      - Tangram <-> mysql
11      - Tangram <-> perl-code
12    
13    
14    =head4 2003-01-18  -  start integration with Torus
15    
16      - MAPI <-> LDAP
17      - please visit http://www.netfrag.org/horde/chora/cvs.php/perl/scripts/outlook2ldap/
18    
19    
20    =head4 2002-10-10  -  initial commit
21    
22      - Tangram <-> mysql
23    
 =head4 2002-10-10  -  initial check-in  
24    
25    
26  =head1 DESCRIPTION  =head1 DESCRIPTION
27    
28  Data::Transfer::Sync is a module providing a generic synchronization process    Data::Transfer::Sync is a module providing a generic synchronization process
29  across arbitrary/multiple storages based on a ident/checksum mechanism.    across arbitrary/multiple storages based on a ident/checksum mechanism.
30  It sits on top of Data::Storage.    It sits on top of Data::Storage.
31    
32    
33    
34  =head1 REQUIREMENTS  =head1 REQUIREMENTS
35    
36    For full functionality:  =head3 dependencies
37    
38      from CPAN or (for win32) a ppm-repository:
39        App::Config (CPAN only)
40        Tie::IxHash
41        Log::Dispatch
42        Log::Dispatch::Config
43        mixin
44        Hash::Merge
45        Tie::SecureHash
46        Date::Manip
47        Digest::MD5
48        ... and maybe some more.
49    
50      from nfo/perl/libs:
51        Data::Compare
52      Data::Storage      Data::Storage
53      Data::Transform      Data::Transform
54      Data::Compare      DesignPattern:: (to be renamed into Class::)
55      ... and all their dependencies      ... and all their dependencies. (like Data::UUID & Co.)
56    
57    
58    =head3 additional modules required for 'outlook2ldap'
59    
60  =head1 AUTHORS / COPYRIGHT      Win32::OLE
61        Net::LDAP
62    
63  The Data::Storage module is Copyright (c) 2002 Andreas Motl.  =head3 additional modules required for 'db2db'
 All rights reserved.  
64    
65  You may distribute it under the terms of either the GNU General Public      DBI
66  License or the Artistic License, as specified in the Perl README file.      DBD::mysql
67        DBD::CSV
68        Tangram
69    
70    
71    
72    =head1 AUTHORS / COPYRIGHT / LICENSE
73    
74      The Data::Transfer::Sync module is Copyright (c) 2002 Andreas Motl.
75      All rights reserved.
76    
77      Code contributions, suggestions, support and ideas by
78      Sebastian Utz <su@tunemedia.de> and Jan Hoffmann <jan@romain-volk.com>.
79      
80      You may distribute it under the terms of either the GNU General Public
81      License or the Artistic License, as specified in the Perl README file.
82    
83    
84  =head1 SUPPORT / WARRANTY  =head1 SUPPORT / WARRANTY
85    
86  Data::Storage is free software. IT COMES WITHOUT WARRANTY OF ANY KIND.    Data::Transfer::Sync is free software. IT COMES WITHOUT WARRANTY OF ANY KIND.
87    
88      Please feel free to contact me at <andreas.motl@ilo.de>.
89    
90    
91    
92    =head1 EXAMPLE OUTPUT CHUNKS
93    
94    =head2 Synchronizing orm objects against entries in a .csv file - 17 items modified
95    
96      notice: PULL INTO backend NODE * TYPE Country SELECT NODE * TYPE [n/a] FROM base USING MODULE BizWorks::ResourceMapping;
97      notice: OEF::Script::AbstractFeeder:
98          - Loading data of type [n/a] and
99            filtered by * from the storage named base
100            to the storage named backend - filtered by *.
101          - Will attempt to convert the data to Country.
102      info: Data::Transfer::Sync::API->syncNodes: source=backend/* [Country] <- target=base/* []
103      :c:c:c:c:c:c:c:ctr:c:c:c:c:c:c:c:ctr:c:c:c:c:c:c:ctr:c:ctr:c:c:c:c:c:c:c:c:c:c:c:ctr:c:c:c:ctr:c:c:c:c:c:c:c:ctr:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c
104      :c:c:c:c:c:c:c:c:ctr:c:c:c:c:c:c:c:c:c:c:c:ctr:c:c:c:c:ctr:c:c:c:ctr:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:ctr:ctr:c:c:c:c:ctr:c:c:c:c:c:c:c
105      :c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:ctr:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:ctr:c:c:ctr:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c
106      info: Data::Transfer::Sync::Core->_startsync: statistics: in_sync: 180  /  total: 197  /  attempt_modify: 17  /  ok: 17
107    
108    =head2 Synchronizing orm objects against entries in a .csv file - in-sync
109      
110      notice: PULL INTO backend NODE * TYPE Country SELECT NODE * TYPE [n/a] FROM base USING MODULE BizWorks::ResourceMapping;
111      notice: OEF::Script::AbstractFeeder:
112          - Loading data of type [n/a] and
113            filtered by * from the storage named base
114            to the storage named backend - filtered by *.
115          - Will attempt to convert the data to Country.
116      info: Data::Transfer::Sync::API->syncNodes: source=backend/* [Country] <- target=base/* []
117      :c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c
118      :c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c
119      :c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c:c
120      info: Data::Transfer::Sync::Core->_startsync: statistics: in_sync: 197  /  total: 197
121    
122    
123    
# Line 125  Data::Storage is free software. IT COMES Line 204  Data::Storage is free software. IT COMES
204    
205  =head1 TODO  =head1 TODO
206    
207    - sub _resolveIdentProvider    o sub _resolveIdentProvider
208    - wrap _doModifySource and _doTransferTarget around a core function which can change virtually any type of node    x wrap _doModifySource and _doTransferTarget around a core function which can change virtually any type of node
209    - split this module up into Sync.pm, Sync/Core.pm, Sync/Compare.pm and Sync/Compare/Checksum.pm    x split this module up into Sync.pm, Sync/Core.pm, Sync/Compare.pm and Sync/Compare/Checksum.pm
210       - introduce _compareNodes as a core method and wrap it around methods in Sync/Compare/Checksum.pm    o introduce _compareNodes as a core method and wrap it around methods in Sync/Compare/Checksum.pm
211    - introduce Sync/Compare/MyComparisonImplementation.pm    x introduce Sync/Compare/MyComparisonImplementation.pm
212    - some generic deferring method - e.g. "$self->defer(action)" - to be able to accumulate a bunch of actions for later processing    o some generic deferring method - e.g. "$self->defer(action)" - to be able to accumulate a bunch of actions for later processing
213       - this implies everything done is _really_ split up into generic actions - how else would we defer them???       - this implies everything done is _really_ split up into generic actions - how else would we defer them???
214       - example uses:       - example uses:
215          - fetch whole checksum list from node          - fetch whole checksum list from node
216          - remember source ident retransmits          - remember source ident retransmits
217       - remember: this is convenient - and maybe / of course faster - but we'll loose "per-node-atomic" operations       - remember: this is convenient - and maybe / of course faster - but we'll loose "per-node-atomic" operations
218    - feature: mechanism to implicit inject checksum property to nodes (alter table / modify schema)    o feature: mechanism to implicit inject checksum property to nodes (alter table / modify schema)
219    - expand statistics / keep track of:    o expand statistics / keep track of:
220      - touched/untouched nodes      - touched/untouched nodes
221    - full sync    o full sync
222      - just do a push and a pull for now but use stats for touched nodes in between to speed up things      - just do a push and a pull for now but use stats for touched nodes in between to speed up things
223    - introduce some new metadata flags for a synchronization partner which is (e.g.) of "source" or "target":    o introduce some new metadata flags for a descent
224      - isNewNodePropagator      - isNewNodePropagator
225      - isWriteProtected      x isWriteProtected
226    
227    
228  =cut  =cut

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

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