[Owncloud] modularization

Melvin Carvalho melvincarvalho at gmail.com
Tue Feb 21 13:53:26 UTC 2012


On 21 February 2012 09:46, Klaas Freitag <freitag at owncloud.com> wrote:

> On 20.02.2012 21:58, Melvin Carvalho wrote:
>
>> On 20 February 2012 21:56, Thomas Wanderer<newsabos at nurfuerspam.**de<newsabos at nurfuerspam.de>>
>>  wrote:
>>
> Hi,
>
> you come up with really interesting thoughts here, but for me thats still
> to unspecific to really understand.
>
>
>  So you're suggesting a kind of REST whatever interface? This would be
>>> defenetely nice but I think the API mentioned here should be an set of
>>> PHP
>>> interfaces which are stable and can be used by app programmers...or?
>>>
>>
>> Both are possible.
>>
> I think we have three interface levels we have to consider here:
> 1) the interface between ownCloud core to applications
> 2) the interface between apps and the world
> 3) the interface between different apps, as they will depend on each other
>
> For which of the level are you suggesting REST architecture? I agree that
> for 2) REST is often the right choice, even if it depends on the data a bit.
>
> For 1) it might be more difficult, I have experience with another big
> system I helped to design where we went the REST for internal interfaces
> way. Over the time we had to make excuses to the paradigm more and more.
>
> 3) will often be the same as 2) probably.


It's often said that the hardest problem in computer science is naming.

Before you can talk about interfaces, such as REST, you need to talk about
identifiers.  What you need in order to scale highly is a consistent way of
identify a resource across file systems, protocols and a servers.  The
level your system will scale is depending on the scope of that identifer.
If it's a local identifier the system will scale locally, if it's a
universal identifier (URI) it will scale to the whole web and even across
protocols.

Once things have identifiers you can talk about interfaces.  Based on above
the strength of your architecture is roughly equivalent to the the strength
of your identifiers.   REST is the architecture of the Web it's based on
HTTP.  WebDAV is kind of an extension of this using the HTTP verbs to read
and write.

So it's possible to have 3 completely different interfaces between the
scenarios you outline.  OR you can have a common interface based on well
designed identifiers and HTTP that is the same across all 3 interfaces, and
longer term to make connections across the whole web.  This is the most
modular way to do things.  So I would advocate good scalable naming of the
underlying resources.  Then an HTTP based interface roughly consistent
across resources, but extensible to other protocols such as FTP etc.

Sorry, that's a bit light on technical details, I've only been playing with
owncloud a few days, but as I learn more hopefully I can give some more
concrete ideas, code patches etc.


>
>
>  But for maximum scalability there should be helper
>> methods to find the data sources, for example, without having to use
>> firebug.  Doesnt need to be done right away, but long term this is a
>> really
>> great way to scale.
>>
> Can you give a concrete example on base of what ownCloud provides nowadays?
>
> Thanks,
>
> Klaas
>
> ______________________________**_________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/**listinfo/owncloud<https://mail.kde.org/mailman/listinfo/owncloud>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/owncloud/attachments/20120221/1bf8139d/attachment.html>


More information about the Owncloud mailing list