On Wed, Jun 27, 2012 at 11:49 AM, Felix Meschberger <fmesc...@adobe.com> wrote:
> Hi,
>
> Am 27.06.2012 um 11:20 schrieb Jukka Zitting:
>
>> Hi,
>>
>> On Wed, Jun 27, 2012 at 10:25 AM, Angela Schreiber <anch...@adobe.com> wrote:
>>> i don't fully see the use case for such long living sessions.
>
> FWIW, this was my first thought, too: This completely breaks stateless-ness 
> of HTTP and introduces the use of Sessions. We can do that, but we have to 
> know exactly, what it means and costs.
>
>>
>> The rationale is the same as for the branch feature we added to the
>> MicroKernel. Instead of having to maintain a separate transient tree
>> abstraction on the client side (which might be troublesome given
>> potentially limited storage capacity), it's better to be able to send
>> uncommitted data to the server for storage in a temporary branch where
>> it can be accessed using the existing tree abstraction already
>> provided by Oak.
>>
>> Most notably the session feature allows us to use such a HTTP binding
>> to implement remoting of the Oak API without the need for client-side
>> storage space and associated extra code for managing it.
>>
>>> IMO also importing big trees and batch read/writing should be covered
>>> by a single request.
>>
>> That quickly leads to increasingly complex server side features like
>> filtering or conditional saves.
>>
>> For example, think of a client like the Sling engine that first
>> resolves a path potentially with custom mappings, then follows a
>> complex set of resource type references, and finally renders a
>> representation of the resolved content based on the resource type
>> definitions that were found. Ideally (for consistency and better
>> caching support) it should be possible to perform the entire operation
>> based on a stable snapshot of the repository, but there's no way that
>> all the information required by such a process could be included in
>> the response of a single Oak HTTP request.
>
> With my Sling hat on, I am not sure about this example ;-)
>
> IMNSHO Sling should operate on JCR API and not on Oak Native HTTP binding.

for once i'm a 100% with felix ;)

if i understand jukka's proposal correctly, it's about promoting an alternative
public client api. in my understanding the ultimate goal of the oak project
is to come up with a highly efficient & scalable jcr implementation.
imo we should focus on this goal.

i thought that we have a consensus of how the oak stack should be layered, i.e.

app / sling / oak-jcr (trans. space) / [remoting /] oak-core [remoting
/] oak-mk.

now your proposal seems to imply a different architecture...

cheers
stefan


>
> Regards
> Felix
>
>
>>
>> Exposing the branch feature as proposed avoids the need for complex
>> server-side request processing logic and makes it easier to implement
>> many client-side features that would otherwise have to use local
>> storage or temporary content subtrees visible to other repository
>> clients.
>>
>> BR,
>>
>> Jukka Zitting
>

Reply via email to