[prev in list] [next in list] [prev in thread] [next in thread] 

List:       owncloud
Subject:    Re: [Owncloud] modularization
From:       Melvin Carvalho <melvincarvalho () gmail ! com>
Date:       2012-02-21 13:53:26
Message-ID: CAKaEYhKk4Swwg3rGdrb7vi1iFx6DGkgdi=S5QeDbd7iH2LjZnw () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


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

> On 20.02.2012 21:58, Melvin Carvalho wrote:
>
>> On 20 February 2012 21:56, Thomas Wanderer<newsabos@nurfuerspam.**de<newsabos@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@kde.org
> https://mail.kde.org/mailman/**listinfo/owncloud<https://mail.kde.org/mailman/listinfo/owncloud>
>

[Attachment #5 (text/html)]

<br><br><div class="gmail_quote">On 21 February 2012 09:46, Klaas Freitag <span \
dir="ltr">&lt;<a href="mailto:freitag@owncloud.com">freitag@owncloud.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex"> <div class="im">On 20.02.2012 21:58, Melvin Carvalho \
wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex"> On 20 February 2012 21:56, Thomas Wanderer&lt;<a \
href="mailto:newsabos@nurfuerspam.de" \
target="_blank">newsabos@nurfuerspam.<u></u>de</a>&gt;  wrote:<br> \
</blockquote></div> Hi,<br>
<br>
you come up with really interesting thoughts here, but for me thats still to \
unspecific to really understand.<div class="im"><br> <br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex"> So you&#39;re suggesting a kind of \
REST whatever interface? This would be<br> defenetely nice but I think the API \
mentioned here should be an set of PHP<br> interfaces which are stable and can be \
used by app programmers...or?<br> </blockquote>
<br>
Both are possible.<br>
</blockquote></div>
I think we have three interface levels we have to consider here:<br>
1) the interface between ownCloud core to applications<br>
2) the interface between apps and the world<br>
3) the interface between different apps, as they will depend on each other<br>
<br>
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.<br> <br>
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.<br> <br>
3) will often be the same as 2) probably.</blockquote><div><br>It&#39;s often said \
that the hardest problem in computer science is naming. <br></div><div><br>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&#39;s a local identifier the system will scale \
locally, if it&#39;s a universal identifier (URI) it will scale to the whole web and \
even across protocols.  <br> <br>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&#39;s based on HTTP.  WebDAV is kind of an extension of this using the HTTP verbs \
to read and write.<br> <br>So it&#39;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.<br> <br>Sorry, that&#39;s a bit light \
on technical details, I&#39;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.<br> \
</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px \
solid rgb(204,204,204);padding-left:1ex"> <div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> But for maximum scalability there should be helper<br>
methods to find the data sources, for example, without having to use<br>
firebug.  Doesnt need to be done right away, but long term this is a really<br>
great way to scale.<br>
</blockquote></div>
Can you give a concrete example on base of what ownCloud provides nowadays?<br>
<br>
Thanks,<br>
<br>
Klaas<div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
Owncloud mailing list<br>
<a href="mailto:Owncloud@kde.org" target="_blank">Owncloud@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/owncloud" \
target="_blank">https://mail.kde.org/mailman/<u></u>listinfo/owncloud</a><br> \
</div></div></blockquote></div><br>



_______________________________________________
Owncloud mailing list
Owncloud@kde.org
https://mail.kde.org/mailman/listinfo/owncloud


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic