webOS Nation Forums >  webOS Developers >  webOS Development > webOsSyncML
webOsSyncML
  Reply
Like Tree7Likes

 
Thread Tools Display Modes
Old 03/02/2011, 04:52 PM   #1 (permalink)
Homebrew Developer
 
Posts: 712
Hi all.

UPDATE Oct. 11 2013
Development of the SyncML synergy connector is currently halted. SyncML support on the server side seems to fade out... the new big thing seems to be caldav.

So, I put all my spare time right now into a caldav/carddav synergy connector which is meant to come a long with open webos ports, but is also working on legacy devices. The implementation is much more stable, also because caldav is much easier than SyncML, and already gives a pretty stable downsync of calendar and contact data from multiple caldav servers. Upsync is currently worked on, but to much alpha right now.
If you are interested, you can follow development here:
https://github.com/webOS-ports/org.w...ntacts.carddav
(or my own, more experimental, fork: https://github.com/Garfonso/org.webo...ntacts.carddav )

Hopefully we'll see some kind of alpha release, soon.

UPDATE
I finished the pure javascript implementation of SyncML and iCal parsing / generation. It still needs tests, though. What is still missing is the js service and the synergy integration. But it is reachable, now.

Status is now:
  • Calendar sync is working.
  • Contacts is prepared but still not in place, leave disabled!
  • All sync modes should work (slow, two-way, refresh, one-way)
  • webOs 2.x is necessary (maybe 3.x works, too, did not test that. But should require only few changes)
  • service is still not implemented. only sync through the app possible (start sync button)
  • account needs to be setup in account (configure button)
  • will spam you with debug text, finished if spinner stops spinning (if it never does the app most probably locked up or is waiting for the server. Waiting can take some minutes especially on a slow sync with many events).

What's on my TODO List:
  • Support for synergie in 2.X (working on that!)
  • Polish the app (maybe :P)... (will be necessary to report debug logs, now.)
  • Save user/password in keymanager. Currently it will be saved in db unencrypted
  • Implement md5-auth (currently it's b64 encoded which can be easily decoded, so use https if possible. Else everyone in the network could get your server password)
  • Contacts sync
  • Maybe Memo/Tasks?

The webOs 2.x JavaScript only version of the app can be found here: https://github.com/Garfonso/SyncML
Feel free to install the ipk there. But be warned that you might lose your data (or much more likely) get your data screwed up by duplicates or similar... I'll be happy to hear your findings.
The most easy way to get the log from the device to me currently is to copy the file /var/log/messages and email it to me. But that's not really convinient, right? I'll try to get something better in place, soon.

(old stuff about the 1.4.5 app. For webOs 2.x and maybe als 3.x see above)

I'm currently working on a webOsSyncML Client. I compiled the funambol c++ SDK for webOs using the PDK and then started to implement a connection to webOs.

The whole thing is in some early pre-alpha stage. It's a hybrid app, a C++ Part that communicates with libfunambol (and the SyncML Server, eGroudware in my case, so that is what is tested!) and a Javascript Part that talks to the webOs Calendar.
At the moment only calendar sync is working. Contact-Sync doesn't do anything (and might as well break everything, including your server! :P), better leave it switched OFF!

Some security advices:
DON'T USE THIS SOFTWARE WITH YOUR PRODUCTION SYSTEM (SERVER/PHONE). NO MATTER WHAT YOU DO, BACKUP YOUR DATA. A BUG COULD EASILY WHIPE ALL YOUR DATA!!! IT HAPPENED TO ME, BE WARNED, I'M NOT RESPONSIBLE FOR ANYTHING.

If any one wants to try it (or even wants to contribute), it's open source and available here: https://github.com/Garfonso/webOsSyncML (There is an build IPKG file, which should be the latest version.. No real version numbering, yet... and there is the complete source code. I also included the makefiles I used to compile the libfunambol.a and the binary of the lib itself. There are also other libs needed, which are inside the folder cpp-sdk/libs. I had no problem on my more or less "clean" pixi plus running the app without copying something...)

Known issues:
  • Parts of the code are still quite dirty and might be very inefficient.
  • It's an early unstable realease and it loggs VERY MUCH to it's own file (see next bullet) and the system log.
  • All data that is transfered get's written to /media/internal/.webOsSyncML/output.txt So anyone that get's hold of your USB Drive might get all events that where transferred by the sorftware.
  • It will save your password inside a cookie (no clue how "secure" that is).
  • It is only working on webOs 1.4.5, webOs 2.X is just incompatible, because of a different way to work with accounts / calendars. I'll be looking into that later.
  • Hybrid App support is not very good in 1.4.5, there might be issues (the c++ part won't run on one of my pre's until I doctored it). I can't help with such issues...
  • As a hybrid app it will never make it's way into the 1.4.5 app catalog.
  • It can only sync in UTC-Timezone, that means your server has to send times in UTC and expect times sent be the device to be UTC, too.

Calendar Sync with modes "Refresh from server, Slow, Two-Way" is working, at least in my test setup that is a Pixi Plus with an eGroupware 1.9svn-Server. It "should" be working with other SyncML Server, too. There might be incompatibilities in the iCal structure, though, so it would help me very much if people could test the software with their servers and send me (at least parts) of their output.txt, if they find some issues... Ah: Only iCal is supported, no sif support, I'm sorry.

Interestingly enough the sync mode "Refresh from client" is not working in my setup... It runs into an endless loop sending the server some packet and receiving the same answer over and over again. I consider that to be a bug (or incompatibility) between funambol and egroupware (but I'm not sure about that and haven't investigated that much, yet)... I have not tested the one direction sync modes, yet.

A short explanation of the app:
In order to sync you need to run the app. No magic background syncing yet (if it will ever exist: I don't know!). On first run, click on "Configure" and enter your SyncML Server details, first a name (which will also be visible in the webOs Calendar), url of the rpc file (for example egroupware/rpc.php), username and password (as stated that will be saved in a cookie!).
Then you should tick "sync calendar" (and keep "sync contacts" ticked off!!), select a sync mode (slow or refresh from server would be a good idea for the first sync, Two-Way is a fast "only changes" sync, which should be ok for later syncs) then enter a iCal-datastore of your server. I typed in ./calendar here, it might aswell be calendar or vcal or similar...

After that, you should go back and press "start sync". This will take you to the "syncScene" and now the app will try to create an account and an empty calendar (a calendar with the name you entered and with the funambol icon should appear after that in the calendar accounts card!). The card is not very polished.. diagnostic messages will "flood" the lower part... now, if no new messages are arriving and you are feeling lucky, press "start sync". If only a message "Object # has no method ..." appears, the c++ part was not started. You could try to press it again after a short wait (on my pixi plus it takes a few seconds to create the jail and start the app). If that doesn't help, have a look at the device-shell (you should know how to use putty for that step) with ps auxc and see if you find some "webOsSyncML_plugin" app in the list and if the status is "defunct" or similar.. if there is nothing or it is defunct => you're screwed. I had the same problem on my pre plus, it would only run the app, if I disabled the jail (I won't recommend that and I won't give instructions here on how to do it!!). The only solution was to doctor the phone...

Now, if the app is running and you clicked on "start sync" there will be much magic going on in the back (a pixi gets a bit unresponsive...), producing some diagnostic messages in the lower part of the card and eventually counting up some of the numbers in the upper part... If you are curious just follow the system log of your device, there will be massive output there!
In the end the diagnostic output eventually will say "Sync completed" or similar and maybe tell you that "there were errors" (which is not very accurate, it sometimes says that everything was fine, even if there were errors... I still need to polish that part).
You can now close the app and take a look at the webOs calendar and your new entries (hopefully).

For all 1.4.5 users: I'm sorry to say that I abandone support for the 1.4.5 version of the app. I'll only continue work on the 2.x version. You are still free to download the 1.4.5 version from the git repository above and see if it works for you. If not, you are free to fix any issues you encounter. It's open source after all.

Is there any interest in a SyncML client for webOs? I'd appreciate some comments...


This thing ate up all my spare time for the last two weeks (and a considerable amount of my normal sleeping time!). I'm not sure yet, if I just "leave the code" to the public and keep my "working" version for my private use, or if I should invest even more time to polish the app and get it released maybe to the homebrew feeds or even into the 2.x app catalog someday... So some positive feedback would help my motivation here... I will definitively have a look into a transition to 2.X, because I got a Pre2 already and finally made it into the early access program.. Maybe even some more expirienced webOs coders have a look at the code and give me some hints...

Last edited by Garfonso; 10/11/2013 at 02:42 AM.
Garfonso is offline   Reply With Quote
Liked by getsun likes this.
Old 03/03/2011, 06:16 PM   #2 (permalink)
Member
 
dkirker's Avatar
 
Posts: 997
Have you considered working with these guys so that the effort is not duplicated?

https://webos-client.forge.funambol.org/
__________________
The comments and thoughts expressed on this discussion board are strictly my own and are not those of OpenMobl Systems.
dkirker is offline   Reply With Quote
Old 03/04/2011, 02:13 AM   #3 (permalink)
Homebrew Developer
 
Posts: 712
I have considered posting them an e-mail on the mailing list and maybe moving the code into the funambol repository.
But I was a bit lazy and didn't do it yet, because the last posts on the mailing list are nearly 12 months old as is the last checked in code.

But I'll see if I can reach some people from that list. Maybe someone wants to contribute a bit...
Garfonso is offline   Reply With Quote
Old 03/04/2011, 08:08 AM   #4 (permalink)
Member
 
Posts: 78
Quote:
Originally Posted by Garfonso View Post
I'm currently working on a webOsSyncML Client. I compiled the funambol c++ SDK for webOs using the PDK and then started to implement a connection to webOs.
Yayyyyy, this is great news! Even though I don't currently use a syncML server I was hoping this would be supported sometime to provide a solution for syncing with our own machines instead of the cloud.

Quote:
Originally Posted by Garfonso View Post
I'm not sure, how to maintain a webOs 1.4.5 and a 2.X version, yet.. so maybe 1.4.5 will be abandoned in the near future? No clue..
I'm still running 1.4.5 but it might make sense to focus on 2.x if it can be hooked into synergy.
crabbz is offline   Reply With Quote
Old 03/05/2011, 02:58 PM   #5 (permalink)
Member
 
Posts: 3
I would love to see your code beeing further developed into a working synergy service for webos 2.x since the missing syncml support is one of the main reasons I want to throw my Pre away from time to time to get an Android device. I already Meta-doctored my first-generation Pre to webos 2.1 so if you decide to get one of the next versions running on 2.1 I would be happy to test it.
Hoshpak is offline   Reply With Quote
Old 03/05/2011, 05:22 PM   #6 (permalink)
Homebrew Developer
 
Posts: 712
Yeah.. I applied for early access sometime ago... I had a look into the documentation today, and there quite a lot of changes in the account structure... But it looks very promising that syncml could be integrated seamlessly into synergie, which would be a huge plus.

I hope that the event<=>iCal conversion can still be used and that there are not too many changes in this area.
Garfonso is offline   Reply With Quote
Old 03/08/2011, 03:25 PM   #7 (permalink)
Member
 
Posts: 77
You really should consider to work with webOS 2.0. As far as I can see you can integrate syncML seamlessly and it should work very well.

I just found funambol and your project. I am looking forward to a project like this a long time and just wanted to start my own

But I think you have much more knowledge in this area so I hope you will finish your app. If I can help, let me know. I have developed several apps and have some devices here to test.

In my oppinion it is really important to have a full sync with own servers and I would love to use this.
SebastianHa is offline   Reply With Quote
Old 03/08/2011, 04:18 PM   #8 (permalink)
Homebrew Developer
 
Posts: 712
Yes, I'm looking into webOs 2.X integration now. I already put up a new git repository (which basically is a copy of the old version at the moment): https://github.com/Garfonso/webOsSyncML2

But there are really some changes, so it will take some time until I get a working version.
Garfonso is offline   Reply With Quote
Old 03/09/2011, 07:25 AM   #9 (permalink)
Member
 
Posts: 77
It could be a lot easier if you use the JSON plugin. As far as I see it allows to sync just via JSON REST API. That should wonderfully harmonize with node.js or even directly with a webos app.
SebastianHa is offline   Reply With Quote
Old 03/09/2011, 07:25 AM   #10 (permalink)
Member
 
Posts: 77
oh, forgot link: https://json-connector.forge.funambol.org/
SebastianHa is offline   Reply With Quote
Old 03/10/2011, 01:29 PM   #11 (permalink)
Member
 
Posts: 54
This would be great for ubuntu users - as ubuntu one uses funambol.
mdwy62 is offline   Reply With Quote
Old 03/11/2011, 03:51 PM   #12 (permalink)
Homebrew Developer
 
Posts: 712
The JSON connector is not such a good idea in my opinion, because it's a funambol specific-server-side-thingie... I still prefer doing a syncml client that will be able to sync to any syncml server.
SyncML is a generic sync protocol, that is understood by many servers, including major groupware implementations... I just use the funambol SDK to not reimplement a complete syncml client.

A 2.X version still produces some headaches for me and maaaaaaaaaany question marks... I've not got an answer yet, if a C++-Synergy transport service will be possible at all... maybe I'll need to implement syncml in javascript (urgs)... and I'm still fighting a bit with the account manager api things...

Sadly I can't push 2.X versions into the github repository yet, because that would be a violation to the NDA... I really hope that Palm will release the 2.X SDK VERY soon!

Hopefully things will get a bit clearer soon... My current roadmap is to first "migrate" my hybrid-sync-app to webOs 2.1, including account management inside the app itself. Then I'll try to get more information on synergy integration (information about that is VERY sparse at the moment) and investigate if I can use the C++-App for that or if I need to stick to JS... would be great if this app will be app catalog ready someday. I'd really like that...

A, one thing on the plus side in 2.1 though: It seems as if the conversion from and to vCal data is integrated into the framework itself, so a major headache from the 1.4.5 app should be gone..
Garfonso is offline   Reply With Quote
Old 03/11/2011, 05:33 PM   #13 (permalink)
Member
 
Posts: 77
Quote:
Originally Posted by Garfonso View Post
The JSON connector is not such a good idea in my opinion, because it's a funambol specific-server-side-thingie... I still prefer doing a syncml client that will be able to sync to any syncml server.
SyncML is a generic sync protocol, that is understood by many servers, including major groupware implementations... I just use the funambol SDK to not reimplement a complete syncml client.
Ah, ok, didn't know that. Then It would be better to "speak funambol" to be compatible to other servers.
SebastianHa is offline   Reply With Quote
Old 03/27/2011, 06:52 AM   #14 (permalink)
Member
 
Posts: 3
Any news on this? The NDA on the 2.1 SDK has been lifted a few days ago so you should be able to publish your code now.
Hoshpak is offline   Reply With Quote
Old 03/29/2011, 06:12 AM   #15 (permalink)
Homebrew Developer
 
Posts: 712
Sorry, I had a deadline on work yesterday. Now I have again a little more spare time to invest in this thing... So that's why it's not finished and not working yet on 2.X.

Anyway I did some investigation, I share here now:
  • An "App"-Version for 2.X should be possible with some work, but not too much. I guess some hours of concentrated coding should do (speak: I need a free weekend, I hope something like that will occur, soon). The only question here for me right now is: How do I know what items have changed since last sync. That is not as obviously handled as in 1.4.5, but I'll figre that one out.
  • A Synergy Service seems more problematic in the current situation. C++ seems not to be possible as synergy service right now, only jnode-Javascript. So that would mean to implement syncml in javascript. That means some more work and will surely take much more time. (I hope not too much, though, because SyncML is basically taking with a http server over xml, which should be easy for Javascript ).
  • I'm using the 1.4.5 version since some time now on my Pixi Plus for calendar sync and did not have any issues anymore.
Garfonso is offline   Reply With Quote
Old 05/05/2011, 04:11 AM   #16 (permalink)
Homebrew Developer
 
Posts: 712
I'm short on spare time (I'm moving into a new flat and will marry my girlfriend this summer)... That's why there is not much movement right now.

I'm still in the need of a syncml webOs Client and so I'm still working on it.. I adapted my webOs code to work with webOs 2.x (only 2.1 tested), but as the changes were quite massive I moved it to another project:

https://github.com/Garfonso/webOsSyncML2

This more or less works already. But I'm using an integrated webOs-Event to vCalendar converter from webOs which confuses my syncml server a bit. Allday events get messed up and attendees (or their status), too. So this is currently only working as one way sync from server to device. To make it working correctly I would need to "filter" the vCal data after the conversion or similar.. I still need to look into that.

Additionally this is still very ugly and needs to be run as app manually. The problem with developing a synergy service for it, is, that the synergy service can only be javascript right now. So one would need to implement a syncml client in JS, which should be possible (because it's basically XML and HTTP requests, nothing hard for JS) to remove the c++ part of the app, which also should make the app much more leightweight. But I'm really short on time right now.. It would be great if there was anybody arround that could support me here a bit...
Garfonso is offline   Reply With Quote
Old 08/20/2011, 04:53 AM   #17 (permalink)
Homebrew Developer
 
Posts: 712
Anyone here that still sticks around? Sorry guys there was not much happening in the last few months... :-(

There are two reasons for that:
1. I really had no spare time for the development, because I moved home and married...
2. I hoped that HP would kick webOs into higher spheres and some of the more commercial oriented companies that do syncml would join the movement and develope a decent client for my phone...

So reason one does not hold anymore, because it's more or less done, I'm back to my usual amount of spare time now which means that I might find a little time for development. The second reason... you heard it. It seems that it's not going to happen. But, no matter what HP does, I need an SyncML Client on that stupid phones (I'm owning a Veer now and my girlfriend is using a Pre2, so both webOs 2.x without a basically working SyncML app yet. )..

So I started to look into that again, today. My wish is to create a synergy JavaScript service that does the SyncML synchronization for contacts and calendar. I hope that I will get "something" to work soon. My priority still is the calendar, if that is working (more or less) I'll look into contacts, too.

Maybe someone else still is looking for syncml.. I'll post everything, including ipks, on git and you are free to try it. If you have any questions, feel free to ask.
Garfonso is offline   Reply With Quote
Thanked by effjot, iDG
Old 08/20/2011, 05:40 AM   #18 (permalink)
Member
 
Posts: 77
I really would love to see this for webOS. I would love to help but I am really short in time
SebastianHa is offline   Reply With Quote
Old 08/20/2011, 05:41 AM   #19 (permalink)
Member
 
Posts: 348
I'm subscribed to this tread and looking forward to have a SynclML client for my TP and Pre2.
Pilotovef is offline   Reply With Quote
Old 08/20/2011, 03:04 PM   #20 (permalink)
Member
 
briest's Avatar
 
Posts: 66
I'd be more than glad to help testing - Pre- with webOS 2.1 on the client side, SOGo + Funambol on the server.
briest is offline   Reply With Quote
Reply

 

Thread Tools
Display Modes



 


Content Relevant URLs by vBSEO 3.6.0