[cvs] [Wiki] changed: Project/ActiveSync

Michael Rubinsky mrubinsk at horde.org
Mon Mar 29 06:31:38 UTC 2010


mrubinsk  Mon, 29 Mar 2010 02:31:38 -0400

Modified page: http://wiki.horde.org/Project/ActiveSync
New Revision:  1.21
Change log:  Some notes on remote wipe/provisioning

@@ -53,19 +53,19 @@
  After the connection particulars are entered, you should choose to  
enable the folders that you want sync'd. Right now only Contacts and  
Calendar are supported.

  ++ Rough list of issues/todos/development notes in no particular order

-Horde_History state driver. Currently, !ActiveSync support uses a  
file-based state driver to persist the PIM state so we know what  
changes. This is a refactored implementation of what the Z-Push  
library does. For Horde, this is inefficient, as we have the data  
needed to know what has changed and when. Once the majority of the  
feature set is working, a Horde_History driver should be written to  
replace the file based driver when syncing contacts, calendar, and  
todo data. We might still need it if/when push email is implemented.  
The backend drivers are able to specify a particular state storage to  
enable this functionality if it is needed.
+* Horde_History state driver. Currently, !ActiveSync support uses a  
file-based state driver to persist the PIM state so we know what  
changes. This is a refactored implementation of what the Z-Push  
library does. For Horde, this is inefficient, as we have the data  
needed to know what has changed and when. Once the majority of the  
feature set is working, a Horde_History driver should be written to  
replace the file based driver when syncing contacts, calendar, and  
todo data. We might still need it if/when push email is implemented.  
The backend drivers are able to specify a particular state storage to  
enable this functionality if it is needed.

-Need to implement ghosted properties / SUPPORTED tag. Currently, each  
message that is sent from PIM -> Server is overwritten and replaced  
with only what the PIM sends. It's possible for some PIMS to ghost  
contact and calendar properties so that only the supplied tags are  
changed and missing, ghosted, properties are retained on the server.   
When a PIM supports this, it sends a SUPPORTED tag with children  
representing the NON-ghosted properties. The absence of the SUPPORTED  
tag would indicate that any property not transmitted should be handled  
as a ghosted property.
+* Need to implement ghosted properties / SUPPORTED tag. Currently,  
each message that is sent from PIM -> Server is overwritten and  
replaced with only what the PIM sends. It's possible for some PIMS to  
ghost contact and calendar properties so that only the supplied tags  
are changed and missing, ghosted, properties are retained on the  
server.  When a PIM supports this, it sends a SUPPORTED tag with  
children representing the NON-ghosted properties. The absence of the  
SUPPORTED tag would indicate that any property not transmitted should  
be handled as a ghosted property.

-Configurable heartbeat interval range: The protocol allows for  
rejecting heartbeat intervals that fall outside a specific range, and  
send back a suggested heartbeat interval to the client. This should be  
implemented as a configuration value.
+* Configurable heartbeat interval range: The protocol allows for  
rejecting heartbeat intervals that fall outside a specific range, and  
send back a suggested heartbeat interval to the client. This should be  
implemented as a configuration value.

-Support for provisioning is already implemented, but we still need to  
figure out all the possible policies available, and the values to use  
to set them etc... Once more are available, they should be added as  
configuration parameters.
+* Basic support for provisioning is already implemented, but support  
for remote wipe still needs work. The state storage needs to be able  
to support username/devid/policykey listing. The Z-Push file-based  
state storage did not support this, and actually never verified the  
policykey at all when using this state storage method. This should be  
easy to add by storing the state files under a username directory. The  
policykey storage was already added to the device's ping-state file so  
we can verify the key and enforce changes. Of course, a new  
history/sql state storage would make this easier (see first point).  
Version 12 and higher also support a "local wipe" which automatically  
wipes the device when certain policies are violated such as maximum  
password attempts (see task below regarding versions).

-Todo syncing: Neither the iPod/iPhone or Android have a native Todo  
application. !TouchDown does provide one, but backend support still  
needs to be added.
+* Todo syncing: Neither the iPod/iPhone or Android have a native Todo  
application. !TouchDown does provide one, but backend support still  
needs to be added.

-Implement more recent protocol version support - version 12 or maybe  
12.1 (Exchange 2007??) should be fairly non-disruptive. 14 (Exchange  
2010?) would probably be lots more work as it does away with PING,  
using SYNC for waiting for changes instead.
+* Implement more recent protocol version support - version 12 or  
maybe 12.1 (Exchange 2007??) should be fairly non-disruptive. Version  
12 would get us more atomic policy settings, local wipe rules, as well  
as the ability to send the policy settings to the client as the more  
compact wbxml. 14 (Exchange 2010?) would probably be lots more work as  
it does away with PING, using SYNC for waiting for changes instead.

  ++ Resources

  http://z-push.sourceforge.net



More information about the cvs mailing list