SlideShare une entreprise Scribd logo
1  sur  34
Z-Push
Z-Push 2.0
For administrators
Current situation: Z-Push 1.5.10
• Z-Push 1.x code base 5 years old
• Development & improvement of
  1.5.x for 1,5 years
• Considered very stable
• Generally good support of devices
• Supports ActiveSync 2.5
  (comparable with MSEX 2003)
   – Early days of mobility
   – Only plaintext email possible
     (with the exception of iOS)
Not optimal ‚things„ with Z-Push 1.5
• Re-creation of the ActiveSync profiles of the users necessary in
  many cases
• Synchronization states are hardly manageable
    – Broken/missing states cause duplicates on mobile
• No effective error detection
• Invalid mapi data “drives devices crazy”
    – Battery drain
    – „incoming loops‟ (same item created various times on the server)
    – Never ending synchronisations
• Many concurrent push connections (especially from iOS)
• Code extensibility limited
Key features for the administrator
• More control
   – About connected users and devices
   – Remote-wipe even with changed User password or without store


• Improved logging
   – Different log levels
   – Ability to write full logs for certain users
   – Fail2ban support


• Support friendly
   – Generally no need to recreate profiles on the mobiles
Stability improvements I
• Semantic checks on data
    Every data object is checked before it is sent to the mobile,
    e.g. “is the end date of an appointment before the start date”
    Object can be ignored if a critical criteria is not met.

    Results in [WARN] level log lines and are also in the device details:

    SyncObject->Check(): object from type SyncContact: parameter
      'picture' is longer than 49152. Check failed (4)


• Incoming loop detection (failstate)
    Assures that created items on the mobile are created ONCE on the server.
    Does not generate a specific log entry
Stability improvements II
Loop detection
   – Detects when mobiles do not understand received data. The amount of
     data is reduced to 1 object trying to identify which object is causing the
     issue.
   – When problematic item is identified it is ignored. This is logged on
     [WARN] log level. This message is visible in z-push-admin.

   – Users could get error messages on the mobile
                 “Synchronization not possible at the moment”.
     Retrying several time (refresh) generally solves this.

   – In some cases the “Mail app” (iOS) needs to be stopped and restarted.
     Device reboot is also a good option.
Stability improvements III
Detection of loop in different processes
• Interprocess loop detection
    Example:
        1.   Sync on an invalid folder -> triggers a FolderSync
        2.   FolderSync does not solve the issue
        3.   Sync on the invalid folder is issued again -> loops
    After 2 retries a full re-sync is executed automatically


• Segfault detection
    Process did not terminate successfully.
    Logs message in [ERROR] log level:
    LoopDetection->ProcessLoopDetectionPreviousConnectionFailed():
      Command 'Sync' at 07/06/2012 17:03:51 with pid '4986'
      terminated unexpectedly or is still running.
Real push notifications
• In combination with ZCP 7.0.6+ real notifications are available by
  using a “changes sink”!

                Polling           vs.             Notification

                                                           3
    ZCP     1     Z-Push    2
                                                ZCP         4     Z-Push


                                          Z-Push registers with the server
 Z-Push checks (1) with the                on which folders it wants to be
 server every X seconds (2)                   notified on changes (3).
 if changes are available
                                        On change, server notifies Z-Push (4).
New tools – z-push-top (live statistics)




• ZCP 7.0.6+ implements changes sink (see “Sink ...”)
• Fallback method is polling (says “Polling ...”)
z-push-top
• Several actions available
    – Type “h” or “help” in z-push-admin for full list
    – Possible to grep and tail directly on the log from tool
    – Filter listed output (option “f”) to only see certain commands, user, pid or
      device
    – Activate “wide” view for large screens (option “w”)


• Hint: You can create a symbolic link on your server to easily access
  z-push-top and z-push-admin
    ln –s /usr/share/z-push/z-push-top.php /usr/sbin/z-push-top
    ln –s /usr/share/z-push/z-push-admin.php /usr/sbin/z-push-admin


    Note: to execute these commands you need reading and writing
      permissions to the logs and states
Device Management with z-push-admin




• User administration (details about connected devices, remote-wipe,
  resynchronization)
• Administrative clean up (reset loop detection)
New tools – z-push-admin (II)




• Also available over SOAP interface
Device management
With z-push-admin
• See which users have connected an ActiveSync device:
    -a list
• See details about one or all devices:
    -a list –u USERNAME –d DEVICE
• Remote wipe a device
    -a wipe –u USERNAME –d DEVICE
• Remove states of all or a single devices of a user
    -a remove –u USERNAME [-d DEVICE]
    Note: if devices are still connected they will re-provision and re-sync
• Trigger re-sync of a device
   -a remove –u USERNAME [-d DEVICE]
    Note: remove and re-sync are similar, but no re-provision is necessary and
      dates like “first synchronization” stays intact.
Partial & Empty Synchronization
Multiple folders per request (device decision)
• Z-Push 1.5: one sync request is always for one folder
• Z-Push 2.0: one sync request can be for one or multiple folders

“Partial” and “empty” sync
• Partial: request sync for one or more folders, but also expects
  changes for “all known synchronized folders”

• Empty: request sync without sending data, which means:
   give changes for “all known synchronized folders”
Heartbeat Synchronization
• Is a combined PING and SYNC request
• Initializes like a normal sync but blocks on requested folders if there
  are no changes atm
• On change:
         the new data is sent immediately in the response
• Partial/Empty & Heartbeat can be combined

• Much lower latency till change is on the mobile
    – one response instead of one response and one full sync request
• Less bandwidth consumption
• May look confusing in z-push-top, as command “Sync”
Real notifications & heartbeat functionality


                         “BlackBerry Experience”
                              with ActiveSync


                             Currently supported by
                                 Android 4 and
                              Windows Phone 7+
Configuration options
• Timezone configuration is important for Z-Push 2
   – If no timezone is set (default), Europe/Amsterdam is used
• State directory:
       STATE_DIR                 /var/lib/z-push/
• Provisioning settings (as in 1.5.x)
       PROVISIONING and LOOSE_PROVISIONING
• Amount of items to be synchronized (default all)
  SYNC_FILTERTIME_MAX         SYNC_FILTERTYPE_ALL
Configuration options – Logging options
• Log directory:
       LOGFILEDIR       /var/log/z-push/
• Log level (default)
       LOGLEVEL         LOGLEVEL_INFO
• Available:
  LOGLEVEL_OFF, LOGLEVEL_FATAL, LOGLEVEL_ERROR
  LOGLEVEL_WARN, LOGLEVEL_INFO, LOGLEVEL_DEBUG

Containing user data:
  LOGLEVEL_WBXML        wbxml data (for support!)
  LOGLEVEL_DEVICEID     as wbxml but with device id
  LOGLEVEL_WBXMLSTACK   wbxml processing stack
Configuration options – Advanced logging
• Separate log for certain users
      LOGUSERLEVEL              LOGLEVEL_DEVICEID

  Users which should be logged are named:
  $specialLogUsers = array(‘mo’, ‘j@d.com’);

• Fail2ban log:
       LOGAUTHFAIL true
  Writes [WARN] message into the default log
Configuration: synchronize Public folder
• Before synchronizing a folder, Z-Push will check if user has at least
  “Secretary permissions” on this folder
• Globally configured for all users on system
     $additionalFolders     = array(
       array(
            'store'          =>   "SYSTEM",
            'folderid'       =>   "7bd2229f7df92680b0700000000",
            'name'           =>   “Learn as SPAM",
            'type'           =>   SYNC_FOLDER_TYPE_USER_MAIL,
        ),
• Several folders of several stores can be synchronized
• Data can be discovered using a script available for ZCP in
   z-push/backends/zarafa/listfolders.php
State management
• Z-Push 2 states are by default located in
      /var/lib/z-push
• Directory needs to be writeable for apache
• Below this directory, several subdirectories are created
• States can be deleted manually!
    – same operation which z-push-admin resync/remove options do!
• States are located by device using the last 2 characters of the
  device id, e.g.
  Device id                             States location
  Appl789789Z7G                         /var/lib/z-push/g/7
• State files begin with the device id, e.g.
   Appl789789Z7G-74cad955-d390-4f02-b4a1-feb576f02a46-<xx>
States II
• The states have a fixed structure
       <device-id>-<sync-uuid>-[type]-<counter>
• Structure in detail
   – Appl789789Z7G                  the device id
   – devicedata                     main device information
   –   74cad955-d390-feb576f02a46   Unique key for a folder (uuid)
   –   <no-type>                    normal synchronization state
   –   hc                           HierarchyCache
   –   fd                           FolderData (used e.g. for ping)
   –   fs                           FailSave data (used by incoming
                                    loop protection)
   – bs                             Backend storage (IMAP backend)
Ping Tracking
• concurrent PING connections
   – iOS opens a new ping connection every time an ActiveSync item is
     accessed
   – These connections run up to 1 hour on the server and block a apache
     process/thread and memory each
   – Each ping connection registers an own sink or worse: does polling


• PingTracking solves this
   – Active PING connections check regularly if newer ping processes are
     available. If so, the older connections terminates.
   – This is done every refresh cycle
     (default 30 seconds - parameter PING_INTERVAL in config.php)
   – Only one ping connection stays active
Some stats (LoC)
                          Files   Blanks    Comments    Code      Total
   Z-Push 1.5               42     2542       4099     13549     20190
   Z-Push 2.0               147    6343      19198     30237     55778

    Difference          + 350 %   + 249 %    + 468 %   + 223 %   + 276 %



       Ohloh.com
       Summary

https://www.ohloh.net/p/z-push
Upgrading 1.5 -> 2.0
• States are incompatible
   –   Old states should be removed or not be copied
   –   All the devices need to fully resynchronize
   –   May cause some higher server load
   –   May take some time (amount of users + items)
• All data is automatically removed from the mobile
• Data is then resynchronized
• Some users will see errors
   – Device sometimes needs “time” and several sync cycles
   – Users should press “refresh” repeatedly
   – On iOS restart mail app or reboot device helps
Upgrading steps
• Install & configure z-push 2
   – Set timezone
   – Check/Create state and log folders
   – State and log folders need to be writeable for apache
• Add dummy configuration to apache for testing & reload
• Test in browser
   – Check for errors in /var/log/z-push/z-push.log


• Update apache config & reload
• Check progress with z-push-top
Demos
• Upgrade
• z-push-admin
• z-push-top
What usually goes wrong
• Missing writing permissions to state & log files
   – Synchronization will not occur, errors will be in log file
• Missing packages
   – Z-Push 2 uses shared memory for some operations
   – Some OS like RHEL need package php-process
   – Z-push-top requires php5-pcntl on some systems, e.g. SUSE
• Appointments are listed with wrong time on mobiles
   – Z-Push server timezone is not set
   – Timezone on mobile is not set or wrong
• High latency
   – If ZCP server is “too far away” connections can time out
Next step ?
• Z-Push 2.0 released today !
  Give it a try! 




 Better/More                    New
 • Control                      • Features
 • Flexibility                  • Tools
 • Manageability                • Supported devices
 • Compatibility                • User friendlier (profiles)
 • Performance
Z-Push 1.5 Support
• Complementary support until 31.12.2012
• Upgrade support afterwards

• Be aware that with Z-Push 1.5 more BYOD
  incompatibilities
  are to be expected

• Currently Android 4 &
  BlackBerry Playbook
  are already not
  supported with 1.5.x
Where does it go?
• MDM plugin for Webapp with new features
   – More synchronization status information
   – Messages/objects which could not be synchronized
   – Open shared folders (contacts & calendars only on iOS)


• Planning 2.x:
   – Encrypted & signed emails
   – Auto-discovery
   – Policy management tool


• Packaging
   – Easier installation & upgrade
Keep in touch
• Announcements on Zarafa Release & Beta list
  Subscribe at http://zarafa.com/newsletter

• Public Bug tracker: http://z-push.sf.net/tracker

• Latest downloads: http://z-push.sf.net/download
  (beta & finals)

• Sources at BerliOS: https://svn.berlios.de/wsvn/z-push/

• Compatibility list:   http://z-push.sf.net/compatibility
  Always up-to-date list about known devices and potential compatibility
  issues.
Questions
Thank you for your attention!

Contenu connexe

Tendances

My ppt @ bec doms on process management
My ppt @ bec doms on process managementMy ppt @ bec doms on process management
My ppt @ bec doms on process managementBabasab Patil
 
Linux : Booting and runlevels
Linux : Booting and runlevelsLinux : Booting and runlevels
Linux : Booting and runlevelsJohn Ombagi
 
Linux System Monitoring basic commands
Linux System Monitoring basic commandsLinux System Monitoring basic commands
Linux System Monitoring basic commandsMohammad Rafiee
 
Installing driver
Installing driverInstalling driver
Installing driverOnline
 
Linux SD/MMC device driver
Linux SD/MMC device driverLinux SD/MMC device driver
Linux SD/MMC device driver艾鍗科技
 
Linux Char Device Driver
Linux Char Device DriverLinux Char Device Driver
Linux Char Device DriverGary Yeh
 
Writing Character driver (loadable module) in linux
Writing Character driver (loadable module) in linuxWriting Character driver (loadable module) in linux
Writing Character driver (loadable module) in linuxRajKumar Rampelli
 
Operating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - ProcessesOperating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - ProcessesPeter Tröger
 
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...Anne Nicolas
 
Understand and optimize Linux I/O
Understand and optimize Linux I/OUnderstand and optimize Linux I/O
Understand and optimize Linux I/OAndrea Righi
 
Process Control Block & Threads and Their Management
Process Control Block & Threads and Their ManagementProcess Control Block & Threads and Their Management
Process Control Block & Threads and Their ManagementUjjwal Kumar
 
Operating System 3
Operating System 3Operating System 3
Operating System 3tech2click
 
System performance monitoring pcp + vector
System performance monitoring   pcp + vectorSystem performance monitoring   pcp + vector
System performance monitoring pcp + vectorSandeep Kunkunuru
 
13 process management
13 process management13 process management
13 process managementShay Cohen
 
Kernel debug log and console on openSUSE
Kernel debug log and console on openSUSEKernel debug log and console on openSUSE
Kernel debug log and console on openSUSESUSE Labs Taipei
 
AOS Lab 11: Virtualization
AOS Lab 11: VirtualizationAOS Lab 11: Virtualization
AOS Lab 11: VirtualizationZubair Nabi
 

Tendances (20)

My ppt @ bec doms on process management
My ppt @ bec doms on process managementMy ppt @ bec doms on process management
My ppt @ bec doms on process management
 
Linux : Booting and runlevels
Linux : Booting and runlevelsLinux : Booting and runlevels
Linux : Booting and runlevels
 
Linux System Monitoring basic commands
Linux System Monitoring basic commandsLinux System Monitoring basic commands
Linux System Monitoring basic commands
 
Aix commands
Aix commandsAix commands
Aix commands
 
Installing driver
Installing driverInstalling driver
Installing driver
 
Linux monitoring
Linux monitoringLinux monitoring
Linux monitoring
 
Linux SD/MMC device driver
Linux SD/MMC device driverLinux SD/MMC device driver
Linux SD/MMC device driver
 
Linux Char Device Driver
Linux Char Device DriverLinux Char Device Driver
Linux Char Device Driver
 
Writing Character driver (loadable module) in linux
Writing Character driver (loadable module) in linuxWriting Character driver (loadable module) in linux
Writing Character driver (loadable module) in linux
 
Linux startup
Linux startupLinux startup
Linux startup
 
Operating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - ProcessesOperating Systems 1 (6/12) - Processes
Operating Systems 1 (6/12) - Processes
 
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
 
Understand and optimize Linux I/O
Understand and optimize Linux I/OUnderstand and optimize Linux I/O
Understand and optimize Linux I/O
 
Process Control Block & Threads and Their Management
Process Control Block & Threads and Their ManagementProcess Control Block & Threads and Their Management
Process Control Block & Threads and Their Management
 
Operating System 3
Operating System 3Operating System 3
Operating System 3
 
System performance monitoring pcp + vector
System performance monitoring   pcp + vectorSystem performance monitoring   pcp + vector
System performance monitoring pcp + vector
 
13 process management
13 process management13 process management
13 process management
 
Kernel debug log and console on openSUSE
Kernel debug log and console on openSUSEKernel debug log and console on openSUSE
Kernel debug log and console on openSUSE
 
Linux Run Level
Linux Run LevelLinux Run Level
Linux Run Level
 
AOS Lab 11: Virtualization
AOS Lab 11: VirtualizationAOS Lab 11: Virtualization
AOS Lab 11: Virtualization
 

Similaire à Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators

Operating Systems: Revision
Operating Systems: RevisionOperating Systems: Revision
Operating Systems: RevisionDamian T. Gordon
 
19-reliabilitytesting.ppt
19-reliabilitytesting.ppt19-reliabilitytesting.ppt
19-reliabilitytesting.pptAnilteaser
 
Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0
Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0
Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0Zarafa
 
Intro Basic of OS .ppt
Intro Basic of OS .pptIntro Basic of OS .ppt
Intro Basic of OS .pptVarsha506533
 
Advanced Operating Systems......Process Management
Advanced Operating Systems......Process ManagementAdvanced Operating Systems......Process Management
Advanced Operating Systems......Process ManagementVeejeya Kumbhar
 
Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Gerard Braad
 
Group#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptx
Group#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptxGroup#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptx
Group#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptxAliHamza515454
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)MongoDB
 
Bba203 unit 2 operating system concepts
Bba203   unit 2 operating system conceptsBba203   unit 2 operating system concepts
Bba203 unit 2 operating system conceptskinjal patel
 
Bca i-fundamental of computer-u-3-functions operating systems
Bca  i-fundamental of  computer-u-3-functions operating systemsBca  i-fundamental of  computer-u-3-functions operating systems
Bca i-fundamental of computer-u-3-functions operating systemsRai University
 
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in ActionNot Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in ActionParis Carbone
 

Similaire à Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators (20)

Syslog.ppt
Syslog.pptSyslog.ppt
Syslog.ppt
 
Operating Systems: Revision
Operating Systems: RevisionOperating Systems: Revision
Operating Systems: Revision
 
19-reliabilitytesting.ppt
19-reliabilitytesting.ppt19-reliabilitytesting.ppt
19-reliabilitytesting.ppt
 
An Introduction To Linux
An Introduction To LinuxAn Introduction To Linux
An Introduction To Linux
 
Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0
Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0
Zarafa SummerCamp 2012 - Keynote Sebastian Kummer - Z-Push 2.0
 
Intro Basic of OS .ppt
Intro Basic of OS .pptIntro Basic of OS .ppt
Intro Basic of OS .ppt
 
Advanced Operating Systems......Process Management
Advanced Operating Systems......Process ManagementAdvanced Operating Systems......Process Management
Advanced Operating Systems......Process Management
 
Advanced_OS_Unit 1 & 2.ppt
Advanced_OS_Unit 1 & 2.pptAdvanced_OS_Unit 1 & 2.ppt
Advanced_OS_Unit 1 & 2.ppt
 
Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)
 
Group#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptx
Group#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptxGroup#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptx
Group#4 Ali-Hamza --Sufian abid-- umer naseem -- adeel akhtar.pptx
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
Ch3 processes
Ch3   processesCh3   processes
Ch3 processes
 
Bba203 unit 2 operating system concepts
Bba203   unit 2 operating system conceptsBba203   unit 2 operating system concepts
Bba203 unit 2 operating system concepts
 
Ioppt
IopptIoppt
Ioppt
 
Bca i-fundamental of computer-u-3-functions operating systems
Bca  i-fundamental of  computer-u-3-functions operating systemsBca  i-fundamental of  computer-u-3-functions operating systems
Bca i-fundamental of computer-u-3-functions operating systems
 
Operating Systems
Operating Systems Operating Systems
Operating Systems
 
Os
OsOs
Os
 
Lecture 5 process concept
Lecture 5   process conceptLecture 5   process concept
Lecture 5 process concept
 
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in ActionNot Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
Not Less, Not More: Exactly Once, Large-Scale Stream Processing in Action
 
Iwatch tech 1
Iwatch tech 1Iwatch tech 1
Iwatch tech 1
 

Plus de Zarafa

Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin developmentZarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin developmentZarafa
 
Zarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android WorkshopZarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android WorkshopZarafa
 
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday KeynoteZarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday KeynoteZarafa
 
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to ZarafaZarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to ZarafaZarafa
 
Zarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter GantenZarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter GantenZarafa
 
Zarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integrationZarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integrationZarafa
 
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
Zarafa SummerCamp 2012 - Exchange Web Services, technical informationZarafa SummerCamp 2012 - Exchange Web Services, technical information
Zarafa SummerCamp 2012 - Exchange Web Services, technical informationZarafa
 
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...Zarafa
 
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdfZararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdfZarafa
 
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-pushZararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-pushZarafa
 
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...Zarafa
 
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development ProcessZararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development ProcessZarafa
 
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012   interesting tips & tricks when migrating to zarafaZararfa summer camp 2012   interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafaZarafa
 
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovationsZarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovationsZarafa
 
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa ArchiverZarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa ArchiverZarafa
 
Zarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation GapZarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation GapZarafa
 
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxyZarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxyZarafa
 
Zarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 featuresZarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 featuresZarafa
 
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...Zarafa
 
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on ZarafaZarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on ZarafaZarafa
 

Plus de Zarafa (20)

Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin developmentZarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
 
Zarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android WorkshopZarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android Workshop
 
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday KeynoteZarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
 
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to ZarafaZarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
 
Zarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter GantenZarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter Ganten
 
Zarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integrationZarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integration
 
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
Zarafa SummerCamp 2012 - Exchange Web Services, technical informationZarafa SummerCamp 2012 - Exchange Web Services, technical information
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
 
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
 
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdfZararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
 
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-pushZararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
 
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
 
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development ProcessZararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
 
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012   interesting tips & tricks when migrating to zarafaZararfa summer camp 2012   interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
 
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovationsZarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
 
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa ArchiverZarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
 
Zarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation GapZarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation Gap
 
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxyZarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
 
Zarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 featuresZarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 features
 
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
 
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on ZarafaZarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Dernier (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators

  • 2. Current situation: Z-Push 1.5.10 • Z-Push 1.x code base 5 years old • Development & improvement of 1.5.x for 1,5 years • Considered very stable • Generally good support of devices • Supports ActiveSync 2.5 (comparable with MSEX 2003) – Early days of mobility – Only plaintext email possible (with the exception of iOS)
  • 3. Not optimal ‚things„ with Z-Push 1.5 • Re-creation of the ActiveSync profiles of the users necessary in many cases • Synchronization states are hardly manageable – Broken/missing states cause duplicates on mobile • No effective error detection • Invalid mapi data “drives devices crazy” – Battery drain – „incoming loops‟ (same item created various times on the server) – Never ending synchronisations • Many concurrent push connections (especially from iOS) • Code extensibility limited
  • 4. Key features for the administrator • More control – About connected users and devices – Remote-wipe even with changed User password or without store • Improved logging – Different log levels – Ability to write full logs for certain users – Fail2ban support • Support friendly – Generally no need to recreate profiles on the mobiles
  • 5. Stability improvements I • Semantic checks on data Every data object is checked before it is sent to the mobile, e.g. “is the end date of an appointment before the start date” Object can be ignored if a critical criteria is not met. Results in [WARN] level log lines and are also in the device details: SyncObject->Check(): object from type SyncContact: parameter 'picture' is longer than 49152. Check failed (4) • Incoming loop detection (failstate) Assures that created items on the mobile are created ONCE on the server. Does not generate a specific log entry
  • 6. Stability improvements II Loop detection – Detects when mobiles do not understand received data. The amount of data is reduced to 1 object trying to identify which object is causing the issue. – When problematic item is identified it is ignored. This is logged on [WARN] log level. This message is visible in z-push-admin. – Users could get error messages on the mobile “Synchronization not possible at the moment”. Retrying several time (refresh) generally solves this. – In some cases the “Mail app” (iOS) needs to be stopped and restarted. Device reboot is also a good option.
  • 7. Stability improvements III Detection of loop in different processes • Interprocess loop detection Example: 1. Sync on an invalid folder -> triggers a FolderSync 2. FolderSync does not solve the issue 3. Sync on the invalid folder is issued again -> loops After 2 retries a full re-sync is executed automatically • Segfault detection Process did not terminate successfully. Logs message in [ERROR] log level: LoopDetection->ProcessLoopDetectionPreviousConnectionFailed(): Command 'Sync' at 07/06/2012 17:03:51 with pid '4986' terminated unexpectedly or is still running.
  • 8. Real push notifications • In combination with ZCP 7.0.6+ real notifications are available by using a “changes sink”! Polling vs. Notification 3 ZCP 1 Z-Push 2 ZCP 4 Z-Push Z-Push registers with the server Z-Push checks (1) with the on which folders it wants to be server every X seconds (2) notified on changes (3). if changes are available On change, server notifies Z-Push (4).
  • 9. New tools – z-push-top (live statistics) • ZCP 7.0.6+ implements changes sink (see “Sink ...”) • Fallback method is polling (says “Polling ...”)
  • 10. z-push-top • Several actions available – Type “h” or “help” in z-push-admin for full list – Possible to grep and tail directly on the log from tool – Filter listed output (option “f”) to only see certain commands, user, pid or device – Activate “wide” view for large screens (option “w”) • Hint: You can create a symbolic link on your server to easily access z-push-top and z-push-admin ln –s /usr/share/z-push/z-push-top.php /usr/sbin/z-push-top ln –s /usr/share/z-push/z-push-admin.php /usr/sbin/z-push-admin Note: to execute these commands you need reading and writing permissions to the logs and states
  • 11. Device Management with z-push-admin • User administration (details about connected devices, remote-wipe, resynchronization) • Administrative clean up (reset loop detection)
  • 12. New tools – z-push-admin (II) • Also available over SOAP interface
  • 13. Device management With z-push-admin • See which users have connected an ActiveSync device: -a list • See details about one or all devices: -a list –u USERNAME –d DEVICE • Remote wipe a device -a wipe –u USERNAME –d DEVICE • Remove states of all or a single devices of a user -a remove –u USERNAME [-d DEVICE] Note: if devices are still connected they will re-provision and re-sync • Trigger re-sync of a device -a remove –u USERNAME [-d DEVICE] Note: remove and re-sync are similar, but no re-provision is necessary and dates like “first synchronization” stays intact.
  • 14. Partial & Empty Synchronization Multiple folders per request (device decision) • Z-Push 1.5: one sync request is always for one folder • Z-Push 2.0: one sync request can be for one or multiple folders “Partial” and “empty” sync • Partial: request sync for one or more folders, but also expects changes for “all known synchronized folders” • Empty: request sync without sending data, which means: give changes for “all known synchronized folders”
  • 15. Heartbeat Synchronization • Is a combined PING and SYNC request • Initializes like a normal sync but blocks on requested folders if there are no changes atm • On change: the new data is sent immediately in the response • Partial/Empty & Heartbeat can be combined • Much lower latency till change is on the mobile – one response instead of one response and one full sync request • Less bandwidth consumption • May look confusing in z-push-top, as command “Sync”
  • 16. Real notifications & heartbeat functionality “BlackBerry Experience” with ActiveSync Currently supported by Android 4 and Windows Phone 7+
  • 17. Configuration options • Timezone configuration is important for Z-Push 2 – If no timezone is set (default), Europe/Amsterdam is used • State directory: STATE_DIR /var/lib/z-push/ • Provisioning settings (as in 1.5.x) PROVISIONING and LOOSE_PROVISIONING • Amount of items to be synchronized (default all) SYNC_FILTERTIME_MAX SYNC_FILTERTYPE_ALL
  • 18. Configuration options – Logging options • Log directory: LOGFILEDIR /var/log/z-push/ • Log level (default) LOGLEVEL LOGLEVEL_INFO • Available: LOGLEVEL_OFF, LOGLEVEL_FATAL, LOGLEVEL_ERROR LOGLEVEL_WARN, LOGLEVEL_INFO, LOGLEVEL_DEBUG Containing user data: LOGLEVEL_WBXML wbxml data (for support!) LOGLEVEL_DEVICEID as wbxml but with device id LOGLEVEL_WBXMLSTACK wbxml processing stack
  • 19. Configuration options – Advanced logging • Separate log for certain users LOGUSERLEVEL LOGLEVEL_DEVICEID Users which should be logged are named: $specialLogUsers = array(‘mo’, ‘j@d.com’); • Fail2ban log: LOGAUTHFAIL true Writes [WARN] message into the default log
  • 20. Configuration: synchronize Public folder • Before synchronizing a folder, Z-Push will check if user has at least “Secretary permissions” on this folder • Globally configured for all users on system $additionalFolders = array( array( 'store' => "SYSTEM", 'folderid' => "7bd2229f7df92680b0700000000", 'name' => “Learn as SPAM", 'type' => SYNC_FOLDER_TYPE_USER_MAIL, ), • Several folders of several stores can be synchronized • Data can be discovered using a script available for ZCP in z-push/backends/zarafa/listfolders.php
  • 21. State management • Z-Push 2 states are by default located in /var/lib/z-push • Directory needs to be writeable for apache • Below this directory, several subdirectories are created • States can be deleted manually! – same operation which z-push-admin resync/remove options do! • States are located by device using the last 2 characters of the device id, e.g. Device id States location Appl789789Z7G /var/lib/z-push/g/7 • State files begin with the device id, e.g. Appl789789Z7G-74cad955-d390-4f02-b4a1-feb576f02a46-<xx>
  • 22. States II • The states have a fixed structure <device-id>-<sync-uuid>-[type]-<counter> • Structure in detail – Appl789789Z7G the device id – devicedata main device information – 74cad955-d390-feb576f02a46 Unique key for a folder (uuid) – <no-type> normal synchronization state – hc HierarchyCache – fd FolderData (used e.g. for ping) – fs FailSave data (used by incoming loop protection) – bs Backend storage (IMAP backend)
  • 23. Ping Tracking • concurrent PING connections – iOS opens a new ping connection every time an ActiveSync item is accessed – These connections run up to 1 hour on the server and block a apache process/thread and memory each – Each ping connection registers an own sink or worse: does polling • PingTracking solves this – Active PING connections check regularly if newer ping processes are available. If so, the older connections terminates. – This is done every refresh cycle (default 30 seconds - parameter PING_INTERVAL in config.php) – Only one ping connection stays active
  • 24. Some stats (LoC) Files Blanks Comments Code Total Z-Push 1.5 42 2542 4099 13549 20190 Z-Push 2.0 147 6343 19198 30237 55778 Difference + 350 % + 249 % + 468 % + 223 % + 276 % Ohloh.com Summary https://www.ohloh.net/p/z-push
  • 25. Upgrading 1.5 -> 2.0 • States are incompatible – Old states should be removed or not be copied – All the devices need to fully resynchronize – May cause some higher server load – May take some time (amount of users + items) • All data is automatically removed from the mobile • Data is then resynchronized • Some users will see errors – Device sometimes needs “time” and several sync cycles – Users should press “refresh” repeatedly – On iOS restart mail app or reboot device helps
  • 26. Upgrading steps • Install & configure z-push 2 – Set timezone – Check/Create state and log folders – State and log folders need to be writeable for apache • Add dummy configuration to apache for testing & reload • Test in browser – Check for errors in /var/log/z-push/z-push.log • Update apache config & reload • Check progress with z-push-top
  • 28. What usually goes wrong • Missing writing permissions to state & log files – Synchronization will not occur, errors will be in log file • Missing packages – Z-Push 2 uses shared memory for some operations – Some OS like RHEL need package php-process – Z-push-top requires php5-pcntl on some systems, e.g. SUSE • Appointments are listed with wrong time on mobiles – Z-Push server timezone is not set – Timezone on mobile is not set or wrong • High latency – If ZCP server is “too far away” connections can time out
  • 29. Next step ? • Z-Push 2.0 released today ! Give it a try!  Better/More New • Control • Features • Flexibility • Tools • Manageability • Supported devices • Compatibility • User friendlier (profiles) • Performance
  • 30. Z-Push 1.5 Support • Complementary support until 31.12.2012 • Upgrade support afterwards • Be aware that with Z-Push 1.5 more BYOD incompatibilities are to be expected • Currently Android 4 & BlackBerry Playbook are already not supported with 1.5.x
  • 31. Where does it go? • MDM plugin for Webapp with new features – More synchronization status information – Messages/objects which could not be synchronized – Open shared folders (contacts & calendars only on iOS) • Planning 2.x: – Encrypted & signed emails – Auto-discovery – Policy management tool • Packaging – Easier installation & upgrade
  • 32. Keep in touch • Announcements on Zarafa Release & Beta list Subscribe at http://zarafa.com/newsletter • Public Bug tracker: http://z-push.sf.net/tracker • Latest downloads: http://z-push.sf.net/download (beta & finals) • Sources at BerliOS: https://svn.berlios.de/wsvn/z-push/ • Compatibility list: http://z-push.sf.net/compatibility Always up-to-date list about known devices and potential compatibility issues.
  • 34. Thank you for your attention!