[VW][7.6] Streaming?

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

[VW][7.6] Streaming?

Boris Popov, DeepCove Labs (SNN)
I had talked with Michael briefly yesterday and he mentioned that there
were some show stoppers in 2.8 that got in the way of enabling streaming
server support in 7.6 so I figured I'd bring it up here to see what the
problems were and if there was some way I could perhaps help the
efforts?

Cheers!

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5
http://tinyurl.com/r7uw4

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [VW][7.6] Streaming?

Lukas Renggli
> I had talked with Michael briefly yesterday and he mentioned that there
>  were some show stoppers in 2.8 that got in the way of enabling streaming
>  server support in 7.6 so I figured I'd bring it up here to see what the
>  problems were and if there was some way I could perhaps help the
>  efforts?

What show stoppers? It works on Squeak.

Why now? Seaside 2.8 is out for months, after a long beta phase where
such a concern should have been raised.

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: [VW][7.6] Streaming?

Boris Popov, DeepCove Labs (SNN)
Lukas,

You have a streaming adaptor in Squeak? Like I said, I don't know what
Michael was referring to specifically, I was hoping Martin and/or Tamara
could chime in and set the record straight.

Thanks!

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5
http://tinyurl.com/r7uw4

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

> -----Original Message-----
> From: [hidden email] [mailto:seaside-
> [hidden email]] On Behalf Of Lukas Renggli
> Sent: Monday, April 21, 2008 10:09 AM
> To: Seaside - general discussion
> Subject: Re: [Seaside] [VW][7.6] Streaming?
>
> > I had talked with Michael briefly yesterday and he mentioned that
there
> >  were some show stoppers in 2.8 that got in the way of enabling
> streaming
> >  server support in 7.6 so I figured I'd bring it up here to see what
the

> >  problems were and if there was some way I could perhaps help the
> >  efforts?
>
> What show stoppers? It works on Squeak.
>
> Why now? Seaside 2.8 is out for months, after a long beta phase where
> such a concern should have been raised.
>
> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [VW][7.6] Streaming?

Lukas Renggli
>  You have a streaming adaptor in Squeak?

Yes, the streaming server adaptor was introduced in Seaside 2.6. Its
use is a requirement for the Comet implementation I wrote in the
beginning of 2006. I regularly use it to run all the functional tests
and as far as I know it passes them all. I don't have much experience
using the streaming adaptor in productive systems though.

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [VW][7.6] Streaming?

Philippe Marschall
2008/4/21, Lukas Renggli <[hidden email]>:
> >  You have a streaming adaptor in Squeak?
>
>
> Yes, the streaming server adaptor was introduced in Seaside 2.6. Its
>  use is a requirement for the Comet implementation I wrote in the
>  beginning of 2006. I regularly use it to run all the functional tests
>  and as far as I know it passes them all. I don't have much experience
>  using the streaming adaptor in productive systems though.

And since this weekend we not only have a response-streaming adapter
but also a request streaming adapter (for file uploads). There were no
changes required that wouldn't make it run on Seaside 2.6. So this
really surprises me.

Cheers
Philippe
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: [VW][7.6] Streaming?

Boris Popov, DeepCove Labs (SNN)
Ah, perhaps I misunderstood Michael then, I'll wait for clarification
from Martin...

Thanks!

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5
http://tinyurl.com/r7uw4

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

> -----Original Message-----
> From: [hidden email] [mailto:seaside-
> [hidden email]] On Behalf Of Philippe Marschall
> Sent: Monday, April 21, 2008 10:36 AM
> To: Seaside - general discussion
> Subject: Re: [Seaside] [VW][7.6] Streaming?
>
> 2008/4/21, Lukas Renggli <[hidden email]>:
> > >  You have a streaming adaptor in Squeak?
> >
> >
> > Yes, the streaming server adaptor was introduced in Seaside 2.6. Its
> >  use is a requirement for the Comet implementation I wrote in the
> >  beginning of 2006. I regularly use it to run all the functional
tests
> >  and as far as I know it passes them all. I don't have much
experience

> >  using the streaming adaptor in productive systems though.
>
> And since this weekend we not only have a response-streaming adapter
> but also a request streaming adapter (for file uploads). There were no
> changes required that wouldn't make it run on Seaside 2.6. So this
> really surprises me.
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [VW][7.6] Streaming?

mkobetic-2
I have to admit I'm sooo not ready for this discussion, but I guess I better say something.

First, when we were working on streaming integration with Seaside 2.8 back in August last year, Seaside 2.8 was nearing
its release and it was quite late for any disruptive changes. So we tried to just hack our way through the problem and
came up with an integration solution that we didn't like but seemed to be working. We were planning to ship 2.8 with our
hack-ish solution and revisit streaming later at a more opportune time. Of course, as we were nearing our VW7.6 freeze
dates we found out the hack-ish solution still had some issues, and in the end we decided to disable the streaming
support altogether for the 7.6 release. Right now we're working to get Velocity 1.0 out and consequently didn't have
time to look at Seaside 2.9 at all. So I feel completely unprepared to discuss this particular problem.

However to say at least something more specific, IIRC one of the main problems we ran into was that the streaming
support back in Seaside 2.8 was pretty much hardwired so that Seaside itself wanted to write the HTTP headers into the
provided socket stream. That doesn't fit our server at all. The server is designed to write the headers and only the
message payload/body is the responsibility of whatever the application layer is. There are of course mechanisms provided
to let the app-layer add headers it wants to send, but the actually writing of headers out on the socket is the server's
job. Moreover Seaside's HTTP writing support is rather simplistic and didn't seem prepared to deal with any of the more
complex issues, like writing the "quoted" encoding (e.g. ?iso-8859-2?Q?....?, or the base 64 variant ?B?) for non-ascii
header values, header field folding etc. So the hack we had was really suppressing all that in our server code and
letting Seaside do its thing, as much as it could. I'm not sure anymore if the problems that lead us to disable
streaming were due to Seaside's limited HTTP abilities or not.

Either way we hoped to convince the Seaside folks that, rather than doing a bit here and bit there, Seaside should just
stay away from HTTP writing/parsing as much as it can. So in the streaming mode the desired set of headers should be
handed over to the server upfront and then there should be a separate call from the server back to Seaside to write just
the streamed body into a provided socket stream. This may well be the direction that 2.9 already went, I don't know.
There were more things we wanted to bring up, but I'll have to go back to find out.

Martin

Boris Popov wrote:
> Ah, perhaps I misunderstood Michael then, I'll wait for clarification
> from Martin...
>
> Thanks!
>
> -Boris
>

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: [VW][7.6] Streaming?

Boris Popov, DeepCove Labs (SNN)
I appreciate the feedback Martin, the reason I brought it up is because
I upgraded to the latest-and-greatest 7.6 last week and ported to
Opentalk-Seaside at the same time. Figured might as well look into
streaming as there was some talk about it back when the project was
announced. I am not particularly missing anything given that we were on
a non-streaming server before, but it's certainly something I wouldn't
mind having if it were offered.

-Boris

--
+1.604.689.0322
DeepCove Labs Ltd.
4th floor 595 Howe Street
Vancouver, Canada V6C 2T5
http://tinyurl.com/r7uw4

[hidden email]

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message
header. Unless otherwise indicated, it contains information that is
private and confidential. If you have received it in error, please
notify the sender and delete the entire message including any
attachments.

Thank you.

> -----Original Message-----
> From: [hidden email] [mailto:seaside-
> [hidden email]] On Behalf Of Martin Kobetic
> Sent: Monday, April 21, 2008 2:18 PM
> To: Seaside - general discussion
> Subject: Re: [Seaside] [VW][7.6] Streaming?
>
> I have to admit I'm sooo not ready for this discussion, but I guess I
> better say something.
>
> First, when we were working on streaming integration with Seaside 2.8
back
> in August last year, Seaside 2.8 was nearing
> its release and it was quite late for any disruptive changes. So we
tried
> to just hack our way through the problem and
> came up with an integration solution that we didn't like but seemed to
be
> working. We were planning to ship 2.8 with our
> hack-ish solution and revisit streaming later at a more opportune
time. Of
> course, as we were nearing our VW7.6 freeze
> dates we found out the hack-ish solution still had some issues, and in
the

> end we decided to disable the streaming
> support altogether for the 7.6 release. Right now we're working to get
> Velocity 1.0 out and consequently didn't have
> time to look at Seaside 2.9 at all. So I feel completely unprepared to
> discuss this particular problem.
>
> However to say at least something more specific, IIRC one of the main
> problems we ran into was that the streaming
> support back in Seaside 2.8 was pretty much hardwired so that Seaside
> itself wanted to write the HTTP headers into the
> provided socket stream. That doesn't fit our server at all. The server
is

> designed to write the headers and only the
> message payload/body is the responsibility of whatever the application
> layer is. There are of course mechanisms provided
> to let the app-layer add headers it wants to send, but the actually
> writing of headers out on the socket is the server's
> job. Moreover Seaside's HTTP writing support is rather simplistic and
> didn't seem prepared to deal with any of the more
> complex issues, like writing the "quoted" encoding (e.g. ?iso-8859-
> 2?Q?....?, or the base 64 variant ?B?) for non-ascii
> header values, header field folding etc. So the hack we had was really
> suppressing all that in our server code and
> letting Seaside do its thing, as much as it could. I'm not sure
anymore if
> the problems that lead us to disable
> streaming were due to Seaside's limited HTTP abilities or not.
>
> Either way we hoped to convince the Seaside folks that, rather than
doing
> a bit here and bit there, Seaside should just
> stay away from HTTP writing/parsing as much as it can. So in the
streaming
> mode the desired set of headers should be
> handed over to the server upfront and then there should be a separate
call
> from the server back to Seaside to write just
> the streamed body into a provided socket stream. This may well be the
> direction that 2.9 already went, I don't know.
> There were more things we wanted to bring up, but I'll have to go back
to
> find out.
>
> Martin
>
> Boris Popov wrote:
> > Ah, perhaps I misunderstood Michael then, I'll wait for
clarification

> > from Martin...
> >
> > Thanks!
> >
> > -Boris
> >
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [VW][7.6] Streaming?

Philippe Marschall
Well there are of course conceptual issues streaming that are
implementation independent. Once a part of the response was been
committed, you can not make up your mind and return something else.
This is especially a problem in the rendering phase. This might seem
strange but there are some interesting uses for this like WATask.
Something like per-component error handlers simply can not work with a
streaming server. We had to hack several places to move the
#returnResponse: from #renderContentOn: to #updateRoot:.

Cheers
Philippe

2008/4/21, Boris Popov <[hidden email]>:

> I appreciate the feedback Martin, the reason I brought it up is because
>  I upgraded to the latest-and-greatest 7.6 last week and ported to
>  Opentalk-Seaside at the same time. Figured might as well look into
>  streaming as there was some talk about it back when the project was
>  announced. I am not particularly missing anything given that we were on
>  a non-streaming server before, but it's certainly something I wouldn't
>  mind having if it were offered.
>
>
>  -Boris
>
>  --
>  +1.604.689.0322
>  DeepCove Labs Ltd.
>  4th floor 595 Howe Street
>  Vancouver, Canada V6C 2T5
>  http://tinyurl.com/r7uw4
>
>  [hidden email]
>
>  CONFIDENTIALITY NOTICE
>
>  This email is intended only for the persons named in the message
>  header. Unless otherwise indicated, it contains information that is
>  private and confidential. If you have received it in error, please
>  notify the sender and delete the entire message including any
>  attachments.
>
>  Thank you.
>
>  > -----Original Message-----
>  > From: [hidden email] [mailto:seaside-
>
> > [hidden email]] On Behalf Of Martin Kobetic
>  > Sent: Monday, April 21, 2008 2:18 PM
>  > To: Seaside - general discussion
>  > Subject: Re: [Seaside] [VW][7.6] Streaming?
>  >
>
> > I have to admit I'm sooo not ready for this discussion, but I guess I
>  > better say something.
>  >
>  > First, when we were working on streaming integration with Seaside 2.8
>  back
>  > in August last year, Seaside 2.8 was nearing
>  > its release and it was quite late for any disruptive changes. So we
>  tried
>  > to just hack our way through the problem and
>  > came up with an integration solution that we didn't like but seemed to
>  be
>  > working. We were planning to ship 2.8 with our
>  > hack-ish solution and revisit streaming later at a more opportune
>  time. Of
>  > course, as we were nearing our VW7.6 freeze
>  > dates we found out the hack-ish solution still had some issues, and in
>  the
>  > end we decided to disable the streaming
>  > support altogether for the 7.6 release. Right now we're working to get
>  > Velocity 1.0 out and consequently didn't have
>  > time to look at Seaside 2.9 at all. So I feel completely unprepared to
>  > discuss this particular problem.
>  >
>  > However to say at least something more specific, IIRC one of the main
>  > problems we ran into was that the streaming
>  > support back in Seaside 2.8 was pretty much hardwired so that Seaside
>  > itself wanted to write the HTTP headers into the
>  > provided socket stream. That doesn't fit our server at all. The server
>  is
>  > designed to write the headers and only the
>  > message payload/body is the responsibility of whatever the application
>  > layer is. There are of course mechanisms provided
>  > to let the app-layer add headers it wants to send, but the actually
>  > writing of headers out on the socket is the server's
>  > job. Moreover Seaside's HTTP writing support is rather simplistic and
>  > didn't seem prepared to deal with any of the more
>  > complex issues, like writing the "quoted" encoding (e.g. ?iso-8859-
>  > 2?Q?....?, or the base 64 variant ?B?) for non-ascii
>  > header values, header field folding etc. So the hack we had was really
>  > suppressing all that in our server code and
>  > letting Seaside do its thing, as much as it could. I'm not sure
>  anymore if
>  > the problems that lead us to disable
>  > streaming were due to Seaside's limited HTTP abilities or not.
>  >
>  > Either way we hoped to convince the Seaside folks that, rather than
>  doing
>  > a bit here and bit there, Seaside should just
>  > stay away from HTTP writing/parsing as much as it can. So in the
>  streaming
>  > mode the desired set of headers should be
>  > handed over to the server upfront and then there should be a separate
>  call
>  > from the server back to Seaside to write just
>  > the streamed body into a provided socket stream. This may well be the
>  > direction that 2.9 already went, I don't know.
>  > There were more things we wanted to bring up, but I'll have to go back
>  to
>  > find out.
>  >
>  > Martin
>  >
>  > Boris Popov wrote:
>  > > Ah, perhaps I misunderstood Michael then, I'll wait for
>  clarification
>  > > from Martin...
>  > >
>  > > Thanks!
>  > >
>  > > -Boris
>  > >
>  >
>  > _______________________________________________
>  > seaside mailing list
>  > [hidden email]
>  > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>  _______________________________________________
>  seaside mailing list
>  [hidden email]
>  http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [VW][7.6] Streaming?

Philippe Marschall
In reply to this post by mkobetic-2
2008/4/21, Martin Kobetic <[hidden email]>:

> I have to admit I'm sooo not ready for this discussion, but I guess I better
> say something.
>
>  First, when we were working on streaming integration with Seaside 2.8 back
> in August last year, Seaside 2.8 was nearing its release and it was quite
> late for any disruptive changes. So we tried to just hack our way through
> the problem and came up with an integration solution that we didn't like but
> seemed to be working. We were planning to ship 2.8 with our hack-ish
> solution and revisit streaming later at a more opportune time. Of course, as
> we were nearing our VW7.6 freeze dates we found out the hack-ish solution
> still had some issues, and in the end we decided to disable the streaming
> support altogether for the 7.6 release. Right now we're working to get
> Velocity 1.0 out and consequently didn't have time to look at Seaside 2.9 at
> all. So I feel completely unprepared to discuss this particular problem.

The time to discuss the problem is now. Otherwise once you have time
Seaside 2.9 will be in the same state as Seaside 2.8 and the
functionality will be the same because that's what works for us.

>  However to say at least something more specific, IIRC one of the main
> problems we ran into was that the streaming support back in Seaside 2.8 was
> pretty much hardwired so that Seaside itself wanted to write the HTTP
> headers into the provided socket stream. That doesn't fit our server at all.
> The server is designed to write the headers and only the message
> payload/body is the responsibility of whatever the application layer is.
> There are of course mechanisms provided to let the app-layer add headers it
> wants to send, but the actually writing of headers out on the socket is the
> server's job. Moreover Seaside's HTTP writing support is rather simplistic
> and didn't seem prepared to deal with any of the more complex issues, like
> writing the "quoted" encoding (e.g. ?iso-8859-2?Q?....?, or the base 64
> variant ?B?) for non-ascii header values, header field folding etc. So the
> hack we had was really suppressing all that in our server code and letting
> Seaside do its thing, as much as it could. I'm not sure anymore if the
> problems that lead us to disable streaming were due to Seaside's limited
> HTTP abilities or not.

That's the implementation that WAListener uses. This is not hardwired
into Seaside. Standard Seaside does no serialization /
de-serialization of headers, not even for cookies, this happens only
in the server adapter. The only exceptions here are:
- WABasicAuthentication
- caching
- redirects
- #attachmentWithFileName:
WABasicAuthentication is bad, I admit that. Caching simply sets ASCII
string key/value pairs, so does #attachmentWithFileName:, I can't see
anything wrong with that. The server adapter does encoding of the
strings like for all the other headers the user might add. The only
potential problem is the encoding of the URL in the redirect. But
Seaside at the moment supports only ASCII urls anyway. So I don't
really see a problem here.

>  Either way we hoped to convince the Seaside folks that, rather than doing a
> bit here and bit there, Seaside should just stay away from HTTP
> writing/parsing as much as it can. So in the streaming mode the desired set
> of headers should be handed over to the server upfront and then there should
> be a separate call from the server back to Seaside to write just the
> streamed body into a provided socket stream. This may well be the direction
> that 2.9 already went, I don't know. There were more things we wanted to
> bring up, but I'll have to go back to find out.

Come up with code and we'll sure have a look at it.

Cheers
Philippe

>  Martin
>
>  Boris Popov wrote:
>
> > Ah, perhaps I misunderstood Michael then, I'll wait for clarification
> > from Martin...
> >
> > Thanks!
> >
> > -Boris
> >
> >
>
>  _______________________________________________
>  seaside mailing list
>  [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside