Re: KDE owncloud client

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: KDE owncloud client

Riccardo Iaconelli
On Wednesday 26 January 2011 07:26:07 kunal wrote:
> Hi riccardo,
> I want to work on ownCloud-sync KDE client, for this year's
> GSOC, can you point to portions of owncloud that need work.
>
> I propose to use (and am very comfortable with) python , for
> the client.

Hi! :)
I'm glad that you want to contribute to ownCloud. This is my idea of the
better way to implement a sync client.

The work would be split in two, and would mostly consist of implementing the
SyncML API with it. There is a well tested package which can provide that -
it's Funambol, which is AGPL and written in Java.
The work would mostly consist in:
 - Understanding how much painful it is to ship Funambol directly with
ownCloud, and providing an easy way to install everything togehter.
 - Integrating Funambol's storage with ownCloud's, or make ownCloud read
funambol's storage (eventually for other datatypes too, like contacts,
calendar, ...).
 - Provide a fallback implementation in PHP (using one of the pletora of other
libraries available), which either implements all of the specification, or
just a subset of it, maybe only files, so that we don't let PHP-only users
down.

All of this is just an idea, and we need to evaluate all the option with
SyncML solutions first, to see how well they work.

The client itself is already under development, and it's akunambol, of which
I'm the maintainer. It is currently in the process of being modularized, and
we are creating an API to be able to allow very easily creation of different
sync types.

Once that is in place, it would be very easy (I estimate less than 100 rows of
code) to write the plugin to sync files. The biggest work would then be
integrading SyncML in ownCloud. Doing this will also bring the possibility to
add many other synchronization types to ownCloud, as I was saying before, PIM
data, or other things. Since SyncML is a standard this will also allow other
devices (iPhones, blackberries, MeeGo ...) to sync with it.

Let me know of what you think, I'm CC'ing akunambol's and ownClouds mailing
lists so that everybody can provide feedback.

Bye,
-Riccardo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/owncloud/attachments/20110126/1ca8e64e/attachment.sig 

Reply | Threaded
Open this post in threaded view
|

Re: KDE owncloud client

kunal ghosh
Hi Riccardo,

I have some comments in-lined:
> Hi! :)
> I'm glad that you want to contribute to ownCloud. This is my idea of the
> better way to implement a sync client.
If i understand correctly , ownCloud aims to be a syncML server
which can sync with standards complaint syncML clients (on iphone,
android, desktop (kde client))
right ?
> The work would be split in two, and would mostly consist of implementing the
> SyncML API with it. There is a well tested package which can provide that -
> it's Funambol, which is AGPL and written in Java.

Funambol is a syncML server and has clients on all major mobile devices
(is this necessary ?
Any syncML compliant client should be able to sync from any syncML
server right ?)

So, Funambol provides the syncML server (lacking audio and video syncing
capabilities http://en.wikipedia.org/wiki/SyncML#SyncMLservers ) that
ownCloud aims to be ?

> The work would mostly consist in:
>   - Understanding how much painful it is to ship Funambol directly with

Funambol, has a bundled Tomcat instance, so it will run as a separate
web service
and owncloud as a separate one. But we can make ownCloud as a wrapper
around the
Funambol instance so that , ownCloud uses the Funambol backend , and
provides
additional video , audio (sync services that funambol doesn't provide at
the moment ,
source: wikipedia syncML servers list).

> ownCloud, and providing an easy way to install everything togehter.

hmm, i feel. we could ship a minimalist VM with everything preconfigured.
This would also include NAT hole punching ( as Hasanat kazmi proposed in
another thread , in the owncloud mailing list).

This would be the most no - brainer for people hosting ownCloud on home
servers, with dynamic IP addresses.

But for hosting ownCloud + Funambol on a hosting service.How that can be
easily done , in one step , i have no idea at the moment. It needs a bit
more of looking into :)

>   - Integrating Funambol's storage with ownCloud's, or make ownCloud read
> funambol's storage (eventually for other datatypes too, like contacts,
> calendar, ...).

This would be the most wise thing to do , at the moment. Leverage Funambol's
storage, and keep working on a php ( or python ) backend as you suggested in
your next point.

I am a member of the belenix dev team (belenix.org) its an OpenSolaris
based
distro, and we were hit hard when the oracle-sun merger happened . Suddenly
our kernel , was closed-sourced by Oracle. So i am a bit skeptical about
Funambol, but have no problem using it , at the moment.

Please do share your thoughts on the point above :).

>   - Provide a fallback implementation in PHP (using one of the pletora of other
> libraries available), which either implements all of the specification, or
> just a subset of it, maybe only files, so that we don't let PHP-only users
> down.
>

Yes , as pointed out above.

> All of this is just an idea, and we need to evaluate all the option with
> SyncML solutions first, to see how well they work.
>
> The client itself is already under development, and it's akunambol, of which
> I'm the maintainer. It is currently in the process of being modularized, and
> we are creating an API to be able to allow very easily creation of different
> sync types.
>
> Once that is in place, it would be very easy (I estimate less than 100 rows of
> code) to write the plugin to sync files. The biggest work would then be
> integrading SyncML in ownCloud. Doing this will also bring the possibility to
> add many other synchronization types to ownCloud, as I was saying before, PIM
> data, or other things. Since SyncML is a standard this will also allow other
> devices (iPhones, blackberries, MeeGo ...) to sync with it.

I had another idea,
We could provide a Funambol backend (till our implementation in php /
python is done)
for syncing email , contacts , Memos , tasksetc. And provide a webdav
based interface
for syncing Documents , music , Videos etc.

Also , with limited hard-disk space on netbooks and mobile phones,
people would just want
to access ( as in just play ) their songs etc, hosted on their cloud.I
think a web interface
(that we currently have) to play songs , and stream videos would be the
way to go. The web
interface eliminates the need for native sync clients on mobile phones.


> Let me know of what you think, I'm CC'ing akunambol's and ownClouds mailing
> lists so that everybody can provide feedback.
>
> Bye,
> -Riccardo


--
regards
-------
Kunal Ghosh
Dept of Computer Sc.&  Engineering.
Sir MVIT
Bangalore,India

permalink: member.acm.org/~kunal.t2
Blog:kunalghosh.wordpress.com
Website:www.kunalghosh.net46.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/owncloud/attachments/20110127/0474194b/attachment.htm 

Reply | Threaded
Open this post in threaded view
|

Re: KDE owncloud client

Robin Appelman
In reply to this post by Riccardo Iaconelli
On Wednesday 26 January 2011 12:05:49 Riccardo Iaconelli wrote:

> On Wednesday 26 January 2011 07:26:07 kunal wrote:
> > Hi riccardo,
> > I want to work on ownCloud-sync KDE client, for this year's
> > GSOC, can you point to portions of owncloud that need work.
> >
> > I propose to use (and am very comfortable with) python , for
> > the client.
>
> Hi! :)
> I'm glad that you want to contribute to ownCloud. This is my idea of the
> better way to implement a sync client.
>
> The work would be split in two, and would mostly consist of implementing the
> SyncML API with it. There is a well tested package which can provide that -
> it's Funambol, which is AGPL and written in Java.
> The work would mostly consist in:
>  - Understanding how much painful it is to ship Funambol directly with
> ownCloud, and providing an easy way to install everything togehter.
>  - Integrating Funambol's storage with ownCloud's, or make ownCloud read
> funambol's storage (eventually for other datatypes too, like contacts,
> calendar, ...).
>  - Provide a fallback implementation in PHP (using one of the pletora of
> other libraries available), which either implements all of the
> specification, or just a subset of it, maybe only files, so that we don't
> let PHP-only users down.
>
> All of this is just an idea, and we need to evaluate all the option with
> SyncML solutions first, to see how well they work.
>
> The client itself is already under development, and it's akunambol, of which
> I'm the maintainer. It is currently in the process of being modularized,
> and we are creating an API to be able to allow very easily creation of
> different sync types.
>
> Once that is in place, it would be very easy (I estimate less than 100 rows
> of code) to write the plugin to sync files. The biggest work would then be
> integrading SyncML in ownCloud. Doing this will also bring the possibility
> to add many other synchronization types to ownCloud, as I was saying
> before, PIM data, or other things. Since SyncML is a standard this will
> also allow other devices (iPhones, blackberries, MeeGo ...) to sync with
> it.
>
> Let me know of what you think, I'm CC'ing akunambol's and ownClouds mailing
> lists so that everybody can provide feedback.
>
> Bye,
> -Riccardo
I experimented a bit with phpSyncML and I managed to get it integrated in
ownCloud enough to do some basic pim synchronization done.

I didn't do to much testing yet but it looks like I could drop google calendar
faster then I expected :)

I will commit the plugin soon-ish

 - Robin Appelman

Reply | Threaded
Open this post in threaded view
|

Re: KDE owncloud client

Riccardo Iaconelli
In reply to this post by kunal ghosh
Hola!
Sorry for the delay, got caught a bit up with exams.
Replies are inline:

On Thursday 27 January 2011 22:56:21 kunal wrote:
> > Hi! :)
> > I'm glad that you want to contribute to ownCloud. This is my idea of the
> > better way to implement a sync client.
>
> If i understand correctly , ownCloud aims to be a syncML server
> which can sync with standards complaint syncML clients (on iphone,
> android, desktop (kde client))
> right?

Not too much - ownCloud aims to be a personal cloud server. It should use
SyncML as a way to synchronize its data to KDE, and synchronization to other
devices comes as a big bonus. It is not its only scope, just a "communication
layer" for some (many) of its features.

> > The work would be split in two, and would mostly consist of implementing
> > the SyncML API with it. There is a well tested package which can
> > provide that - it's Funambol, which is AGPL and written in Java.
>
> Funambol is a syncML server and has clients on all major mobile devices
> (is this necessary ?)

Not necessary, but if ownCloud is not isolated and only used by KDE
applications, this is a huge plus for usefulness.

> Any syncML compliant client should be able to sync from any syncML
> server right ?)

Yes, at least for standard types (especially PIM). Porting simple clients to
other platforms shouldn't be too hard, either (e.g. file sync).

> So, Funambol provides the syncML server (lacking audio and video syncing
> capabilities http://en.wikipedia.org/wiki/SyncML#SyncMLservers ) that
> ownCloud aims to be ?

Lacking audio and video is not really a problem. There is a standard "file"
type, which can be used to sync almost everything. So this is not a big issue,
and we'll be able to sync everything, leaving the duty of playing the file
remotely to the webinterface.
 

> > The work would mostly consist in:
> >   - Understanding how much painful it is to ship Funambol directly
> >   with
>
> Funambol, has a bundled Tomcat instance, so it will run as a separate
> web service
> and owncloud as a separate one. But we can make ownCloud as a wrapper
> around the
> Funambol instance so that, ownCloud uses the Funambol backend, and
> provides
> additional video, audio (sync services that funambol doesn't provide at
> the moment,
> source: wikipedia syncML servers list).

An idea - why don't we let funambol handle the syncronization side, and let
ownCloud interface itself with the funambol storage? Or even, the other way
around. I don't know too much of how funambol server works to make an informed
suggestion here. Hopefully somebody who has that knowledge can fill us in
here, or we can ask on the list. This way funambol becomes just a "data"
backend, integrating how the software works.

> > ownCloud, and providing an easy way to install everything togehter.
>
> hmm, i feel. we could ship a minimalist VM with everything preconfigured.
> This would also include NAT hole punching (as Hasanat kazmi proposed in
> another thread , in the owncloud mailing list).
>
> This would be the most no - brainer for people hosting ownCloud on home
> servers, with dynamic IP addresses.

This is a good idea!

> But for hosting ownCloud + Funambol on a hosting service.How that can be
> easily done , in one step , i have no idea at the moment. It needs a bit
> more of looking into :)

Probably we can just provide instructions on how to set up ownCloud. For PHP-
only hosts, we can either implement a small subset of the capabilities (e.g.
PIM only) through one of the several libraries, or disallow desktop
integration. This is an area that needs exploring.

> >   - Integrating Funambol's storage with ownCloud's, or make ownCloud
> >   read
> >
> > funambol's storage (eventually for other datatypes too, like contacts,
> > calendar, ...).
>
> This would be the most wise thing to do , at the moment. Leverage Funambol's
> storage, and keep working on a php ( or python ) backend as you suggested
> in your next point.
>
> I am a member of the belenix dev team (belenix.org) its an OpenSolaris
> based
> distro, and we were hit hard when the oracle-sun merger happened . Suddenly
> our kernel , was closed-sourced by Oracle. So i am a bit skeptical about
> Funambol, but have no problem using it , at the moment.
>
> Please do share your thoughts on the point above :).

After having collaborated with them for some years, I must say that it's
usually a pleasure to work with them. They are interested in seeing this
going, and during the development of akunambol they already provided me much
assistance.
Also, they are the guys who invented AGPL, to ensure freedom in the clouds -
so I think that they won't immediately close source everything. It is not
their business strategy, and in good faith, I don't think it will hapen too
soon.

> >   - Provide a fallback implementation in PHP (using one of the pletora
> >   of other
> >
> > libraries available), which either implements all of the specification,
> > or just a subset of it, maybe only files, so that we don't let PHP-only
> > users down.
>
> Yes, as pointed out above.
>
> > All of this is just an idea, and we need to evaluate all the option with
> > SyncML solutions first, to see how well they work.
> >
> > The client itself is already under development, and it's akunambol, of
> > which I'm the maintainer. It is currently in the process of being
> > modularized, and we are creating an API to be able to allow very easily
> > creation of different sync types.
> >
> > Once that is in place, it would be very easy (I estimate less than 100
> > rows of code) to write the plugin to sync files. The biggest work would
> > then be integrading SyncML in ownCloud. Doing this will also bring the
> > possibility to add many other synchronization types to ownCloud, as I
> > was saying before, PIM data, or other things. Since SyncML is a
> > standard this will also allow other devices (iPhones, blackberries,
> > MeeGo ...) to sync with it.
>
> I had another idea,
> We could provide a Funambol backend (till our implementation in php /
> python is done)
> for syncing email , contacts , Memos , tasksetc. And provide a webdav
> based interface
> for syncing Documents , music , Videos etc.

What do you mean here? I think this is a good idea, but I don't see how it
conflicts with the other points. :)

> Also , with limited hard-disk space on netbooks and mobile phones,
> people would just want
> to access ( as in just play ) their songs etc, hosted on their cloud.I
> think a web interface
> (that we currently have) to play songs , and stream videos would be the
> way to go. The web
> interface eliminates the need for native sync clients on mobile phones.

I agree! and thanks to Qt, we are able to build lightweight UIs for that. So,
we only need a way to get a URL to access a file, with authentication... but
that is beyond the scope of syncing.

I hope that answers some points! :)

Bye,
-Riccardo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/owncloud/attachments/20110214/89d93e8c/attachment.sig 

Reply | Threaded
Open this post in threaded view
|

Re: KDE owncloud client

Riccardo Iaconelli
In reply to this post by Robin Appelman
On Thursday 03 February 2011 23:41:53 Robin Appelman wrote:
> I experimented a bit with phpSyncML and I managed to get it integrated in
> ownCloud enough to do some basic pim synchronization done.
>
> I didn't do to much testing yet but it looks like I could drop google
> calendar  faster then I expected
>
> I will commit the plugin soon-ish

This is AWESOME!!!

Let me know what I can do, if you need any help. :)

Bye,
-Riccardo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/owncloud/attachments/20110214/f3372c09/attachment.sig 

Reply | Threaded
Open this post in threaded view
|

Re: KDE owncloud client

kunal ghosh
Hi all , i have been working on UDP hole punching , and now have a fair idea
about how it works :)
I will be implementing a simple file sharing python script, to transfer a
file from a computer behind a NAT
to another behind another NAT.
will keep all posted.

I have a few ideas / suggestions / questions :
1. OwnCloud Could be designed to be either
*1.1 hosted at a webhost*, like goDaddy.com etc. which will make the data
available
via static IP / godaddy(et-al) sub-domain.
Pros : the data is available though an  FTP client , or a nice web
interface, very easy to code too ! :)
Cons: 1. High initial cost 2. The user is not in control of the data ( what
if the web-server goes down !!)

*1.2 hosted on the users' computer behind a NAT*
Pros: 1. All the data is with the user 2. Computers in local network do not
need to access the internet to get the data :)
Cons: 1. Difficult to make data available to outside world (NAT
hole-punching) or (reverse-proxy)
*
*

OwnCloud could be designed to be a two part system:
*One part* resident on the OwnCloud users' home computer behind an always on
internet connection
protected behind a NAT.
This part includes the web based front-end , which ownCloud currently has,
which serves any computers in the Local Network.
Plus the web-based front end can be used by any one who opts for scenario
1.1 above (hosted at a webhost*).*
*
*
*Part Two *could be designed as a sync-client + simple file browser +
NAT-hole-puncher + simple file server
This part is always running on the client's home PC (scenario 1.2 hosted on
the users' computer behind a NAT )
and does the following:
It runs on any device (netbook , laptop, desktop) where the user wants to
edit data (Mobile phones are not included
as user may just want to access data on the phone (*Comments ?*)

a) this application running on any computer on the *local lan* other than
the server : requests for files and if the user
updates the file , sends in the new file back to the server.

b) this application running on any computer outside the NAT : does NAT hole
punching , to reach the application running
on the server and then works normally (first retrieving only the files list
, and then retrieving more files as and when a user asks for it)

c) this application running on the server , facilitates NAT hole punching.
Serves files to clients, receives updated files
if any , triggers the *file versioning mechanism * and then saves the files.

Concerns In general :
1. Authentication : We could use a share-key encryption mechanism , thus
allowing sharing of you cloud resources with your  friends :)
2. Security : We could host OwnCloud inside a Virtual Machine, so in case ,
someone cracks into the system the damages could
be sandboxed.
3. File versioning mechanism : Candidates : 1) git 2) Mercurial 3)
ZFileSystem (an OS based versioning mechanism)
If we go with a virtual machine , we could use FreeBSD as a base OS and ZFS
as a filesystem based versioning mechanism.
ZFS is open Sourced, and is a server grade technology part of Solaris 10.
(video showing ZFS being used in FreeNAS
http://www.youtube.com/watch?v=16v4jNYH0GI )

4. WebDav : This afaik doesn't work if the computers are separated by a NAT.

my 2cents :) Please let me know if my ideas above work towards what OwnCloud
is trying to achieve.
*
*
On Mon, Feb 14, 2011 at 4:21 PM, Riccardo Iaconelli <riccardo at kde.org>wrote:

> On Thursday 03 February 2011 23:41:53 Robin Appelman wrote:
> > I experimented a bit with phpSyncML and I managed to get it integrated in
> > ownCloud enough to do some basic pim synchronization done.
> >
> > I didn't do to much testing yet but it looks like I could drop google
> > calendar  faster then I expected
> >
> > I will commit the plugin soon-ish
>
> This is AWESOME!!!
>
> Let me know what I can do, if you need any help. :)
>
> Bye,
> -Riccardo
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud
>
>


--
regards
-------
Kunal Ghosh
Dept of Computer Sc. & Engineering.
Sir MVIT
Bangalore,India

permalink: member.acm.org/~kunal.t2
Blog:kunalghosh.wordpress.com
Website:www.kunalghosh.net46.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/owncloud/attachments/20110224/4f6ed956/attachment.htm