SlideShare ist ein Scribd-Unternehmen logo
1 von 15
z-push - ActiveSync mit PHP
        PHP Unconference

           13.09.2009

          Ingo Reinhart




                           Software, Hosting & IT-Services
Ingo Reinhart & PHP
• Erster Kontakt 2001, phpBB hacks
• Ausbildung zum Fachinformatiker
  (2002-2004) bei Ontrex GmbH,
  online Hotelbuchung
• Mitarbeiter, Dung Marketing GmbH
  (2004-2008), pdflib + CRM/Groupware
• Seit 2009, Selbständig
                                     Software, Hosting & IT-Services
Agenda

• z-push Background + Community
• Installation
• verfügbare Backends
• Backend erstellen
• Ressourcen
                                  Software, Hosting & IT-Services
z-push

• freie ActiveSync Implementierung
• Lizenz: GNU GPL Version 2
• in PHP programmiert
• Erweiterbar durch Backend‘s

                                     Software, Hosting & IT-Services
ActiveSync

• Microsoft ActiveSync Protokoll
• HTTP basiert, WBXML (WAP Binary XML)
• Serverunterstützung: Exchange (vor z-push)
• Geräte: Windows Mobile, iPhone/iPod
  touch, Nokia, Sony Ericsson, ...


                                     Software, Hosting & IT-Services
Aufbau von z-push
                       z-push Frontend

                       WBXML Codec

                       Backend Request
                          Processor

- IMAP/POP3
- vCard
              Differential         Zarafa
- own
                Engine             Engine

                                            Software, Hosting & IT-Services
Community



• Froum: http://z-push.sourceforge.net/phpbb/
• SVN: http://svn.berlios.de/svnroot/repos/z-push/
• contribution agreement
• Hautpentwickler: Zarafa Deutschland GmbH

                                         Software, Hosting & IT-Services
Installation
• Download:
  group_id=8963
                     https://developer.berlios.de/project/showfiles.php?



• Auspacken:         tar -xzvf z-push-<version>.tar.gz -C /var/www


• Verzeichnis anpassen:                chmod 777 /var/www/z-push/state


• Konfiguration von Apache anpassen:
  Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php


• z-push konfigurieren /z-push/config.php
                                                               Software, Hosting & IT-Services
Backends & Struktur

• Standard:
 • IMAP/POP3, vCard Dir, Maildir
• Sonst bekannte:
 • Google Calendar
 • GW: DeskNow, Kolab, Zimbra, ...
                                     Software, Hosting & IT-Services
Backend Entwicklung
class BackendMyEnd extends BackendDiff {
    Logon($username, $domain, $password)
    Logoff()
}
Debuggen: debugLog();


                                  Software, Hosting & IT-Services
Backend Entwicklung
class BackendMyEnd extends BackendDiff {
   GetFolderList()
   GetFolder($id)
   GetMessageList($folderid, $cutoffdate)
   GetMessage($folderid, $id, $truncsize)
   ...

                                    Software, Hosting & IT-Services
Backend Entwicklung
switch($this->folders[$folderid]['type']) {
    case SYNC_FOLDER_TYPE_CONTACT:
    case SYNC_FOLDER_TYPE_TASK:
    case SYNC_FOLDER_TYPE_APPOINTMENT:
    default: // sind E-Mailfolder
}


                                              Software, Hosting & IT-Services
Message Typen
•   $message = new SyncContact();
•   $message = new SyncAppointment();
•   $message = new SyncTask();
•   $message = new Mail_mimeDecode($mail);


•   /z-push/proto.php Klassendefinition


                                         Software, Hosting & IT-Services
z-push Ressourcen

• http://z-push.sourceforge.net
• https://developer.berlios.de/projects/z-push/
• http://z-push.sourceforge.net/phpbb
• http://msdn.microsoft.com/en-us/library/
  cc425499.aspx


                                      Software, Hosting & IT-Services
Vielen Dank!


 Fragen?
           Ingo Reinhart <i.reinhart@kirsh.it>


                      Software, Hosting & IT-Services

Weitere ähnliche Inhalte

Ähnlich wie z-push PHPUnconference 2009

Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit RustJens Siebert
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Jürg Stuker
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013Michael Kirst-Neshva
 
Webinar Virtuelle Arbeiten mit Microsoft Technologien
Webinar Virtuelle Arbeiten mit Microsoft TechnologienWebinar Virtuelle Arbeiten mit Microsoft Technologien
Webinar Virtuelle Arbeiten mit Microsoft TechnologienJenniferMete1
 
Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutterroskakori
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit RustJens Siebert
 
SDC2011: Web Performance Optimization
SDC2011: Web Performance OptimizationSDC2011: Web Performance Optimization
SDC2011: Web Performance OptimizationJakob
 
Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Praxistage
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenAptly GmbH
 
PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021SEARCH ONE
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenSpeedPartner GmbH
 
GWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutschGWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutschGWAVA
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Sharepointroadshow Office365 developer
Sharepointroadshow Office365 developerSharepointroadshow Office365 developer
Sharepointroadshow Office365 developeratwork
 
Frontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien StuttgartFrontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien StuttgartJakob
 

Ähnlich wie z-push PHPUnconference 2009 (20)

Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit Rust
 
Apache Solr Revisited 2015
Apache Solr Revisited 2015Apache Solr Revisited 2015
Apache Solr Revisited 2015
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale Entwicklungsumgebung
 
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013
Datensicherheit in der Cloud und ausserhalb - SharePoint Konferenz Wien 2013
 
Webinar Virtuelle Arbeiten mit Microsoft Technologien
Webinar Virtuelle Arbeiten mit Microsoft TechnologienWebinar Virtuelle Arbeiten mit Microsoft Technologien
Webinar Virtuelle Arbeiten mit Microsoft Technologien
 
Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutter
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
SDC2011: Web Performance Optimization
SDC2011: Web Performance OptimizationSDC2011: Web Performance Optimization
SDC2011: Web Performance Optimization
 
Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 
PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
 
GWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutschGWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutsch
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Sharepointroadshow Office365 developer
Sharepointroadshow Office365 developerSharepointroadshow Office365 developer
Sharepointroadshow Office365 developer
 
Frontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien StuttgartFrontend Performance @ Hochschule der Medien Stuttgart
Frontend Performance @ Hochschule der Medien Stuttgart
 

z-push PHPUnconference 2009

  • 1. z-push - ActiveSync mit PHP PHP Unconference 13.09.2009 Ingo Reinhart Software, Hosting & IT-Services
  • 2. Ingo Reinhart & PHP • Erster Kontakt 2001, phpBB hacks • Ausbildung zum Fachinformatiker (2002-2004) bei Ontrex GmbH, online Hotelbuchung • Mitarbeiter, Dung Marketing GmbH (2004-2008), pdflib + CRM/Groupware • Seit 2009, Selbständig Software, Hosting & IT-Services
  • 3. Agenda • z-push Background + Community • Installation • verfügbare Backends • Backend erstellen • Ressourcen Software, Hosting & IT-Services
  • 4. z-push • freie ActiveSync Implementierung • Lizenz: GNU GPL Version 2 • in PHP programmiert • Erweiterbar durch Backend‘s Software, Hosting & IT-Services
  • 5. ActiveSync • Microsoft ActiveSync Protokoll • HTTP basiert, WBXML (WAP Binary XML) • Serverunterstützung: Exchange (vor z-push) • Geräte: Windows Mobile, iPhone/iPod touch, Nokia, Sony Ericsson, ... Software, Hosting & IT-Services
  • 6. Aufbau von z-push z-push Frontend WBXML Codec Backend Request Processor - IMAP/POP3 - vCard Differential Zarafa - own Engine Engine Software, Hosting & IT-Services
  • 7. Community • Froum: http://z-push.sourceforge.net/phpbb/ • SVN: http://svn.berlios.de/svnroot/repos/z-push/ • contribution agreement • Hautpentwickler: Zarafa Deutschland GmbH Software, Hosting & IT-Services
  • 8. Installation • Download: group_id=8963 https://developer.berlios.de/project/showfiles.php? • Auspacken: tar -xzvf z-push-<version>.tar.gz -C /var/www • Verzeichnis anpassen: chmod 777 /var/www/z-push/state • Konfiguration von Apache anpassen: Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php • z-push konfigurieren /z-push/config.php Software, Hosting & IT-Services
  • 9. Backends & Struktur • Standard: • IMAP/POP3, vCard Dir, Maildir • Sonst bekannte: • Google Calendar • GW: DeskNow, Kolab, Zimbra, ... Software, Hosting & IT-Services
  • 10. Backend Entwicklung class BackendMyEnd extends BackendDiff { Logon($username, $domain, $password) Logoff() } Debuggen: debugLog(); Software, Hosting & IT-Services
  • 11. Backend Entwicklung class BackendMyEnd extends BackendDiff { GetFolderList() GetFolder($id) GetMessageList($folderid, $cutoffdate) GetMessage($folderid, $id, $truncsize) ... Software, Hosting & IT-Services
  • 12. Backend Entwicklung switch($this->folders[$folderid]['type']) { case SYNC_FOLDER_TYPE_CONTACT: case SYNC_FOLDER_TYPE_TASK: case SYNC_FOLDER_TYPE_APPOINTMENT: default: // sind E-Mailfolder } Software, Hosting & IT-Services
  • 13. Message Typen • $message = new SyncContact(); • $message = new SyncAppointment(); • $message = new SyncTask(); • $message = new Mail_mimeDecode($mail); • /z-push/proto.php Klassendefinition Software, Hosting & IT-Services
  • 14. z-push Ressourcen • http://z-push.sourceforge.net • https://developer.berlios.de/projects/z-push/ • http://z-push.sourceforge.net/phpbb • http://msdn.microsoft.com/en-us/library/ cc425499.aspx Software, Hosting & IT-Services
  • 15. Vielen Dank! Fragen? Ingo Reinhart <i.reinhart@kirsh.it> Software, Hosting & IT-Services