r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Dockimbel
21-May-2009
[4816]
I'd like it would be *that* big. :-)
Graham
21-May-2009
[4817x4]
I did build a web portal to my medical database .. but too busy to 
keep that going.  Have to learn a lot more jQuery ....
Still, I have a few users of that as well.
that's what I use for filling in Acrobat forms programmatically.
So, that's you, me, will .. possibly Terry.  Anyone else?
Henrik
21-May-2009
[4821]
I see Cheyenne as a web-window to REBOL apps.
Graham
21-May-2009
[4822]
what does that mean?
Henrik
21-May-2009
[4823]
I build REBOL apps, databases, UIs, scripts. If I want some kind 
of web access to that, Cheyenne is key. I don't see Cheyenne as just 
another web server.
Graham
21-May-2009
[4824]
I have been loath to push Cheyenne much because of the freezing I 
was seeing before.
Henrik
21-May-2009
[4825]
Dockimbel, let's say R3 was done and most bugs were squashed, would 
you then build Cheyenne for R3 and would it be from scratch?
Graham
21-May-2009
[4826]
the inability to run more than one Cheyenne server at the same time 
has been a problem too.
Dockimbel
21-May-2009
[4827]
I didn't saw such "freezing" since september 2008 (the last one that 
happened here). I guess that the last fix about IE POST issue was 
the last possible cause of such problem.
Graham
21-May-2009
[4828]
I don't see it anymore because now I use a Rebol client to access 
Cheyenne and not a web browser.
Dockimbel
21-May-2009
[4829]
R3: when it will be feature complete and in final beta stage, sure 
I will. I'll probably rewrite complety the lower level networking 
code and try to keep as much as possible the higher level code.
Henrik
21-May-2009
[4830]
what role would uniserve play, if networking is completely async 
and threading is possible in R3?
Dockimbel
21-May-2009
[4831]
UniServe is a thin framework layer other the raw port! stuff. It 
provides an event-oriented framework for implementing server or client 
side protocols. Some UniServe events are same as the lower async 
ones : on-connect, on-close. Other are higher level such as : on-receive 
(trigger when a given amount of data or a given sequence is received).
Graham
21-May-2009
[4832]
Did I mention I'd like to see a zope clone one day :)
Robert
21-May-2009
[4833]
response/Forward: This looks good. from the docs I see that it's 
possible to forward to a new RSP page. Will this work with a SHTML 
page as well?
Graham
21-May-2009
[4834]
did you mean ssi ?
Maxim
21-May-2009
[4835]
graham, you can run MANY cheyenne servers on the same system .  and 
they can be handling several thousand requests / hour each without 
failure.  


at my client cheyenne is probably the most stable server application 
they have, a part from apache.
Dockimbel
21-May-2009
[4836x2]
UniServe still has a purpose in R3, but it implementation will be 
much lighter and it will run much faster. Btw, one of UniServe's 
plugin, Task-master, is in charge of running and exchanging data 
with external processes given true multitasking abilities to UniServe's 
based products (RSP scripts are evaluated in such helper processes). 
R3 multithreading will make multitasking much simpler and way much 
faster.
Robert: never tried, but as it loops over the whole HTTPd request 
processing pipeline, I think it should work with SHTML.
Maxim
21-May-2009
[4838]
the mod for access refusal is finished btw.  it works really well, 
I ended up doing it in a mod and doing a few invisible actions within 
the make-response and task-done callbacks.
Graham
21-May-2009
[4839]
Max, you don't get any errors when you run more than one instance?
Dockimbel
21-May-2009
[4840]
Graham: I'm putting this issue higher in my todo list, shouldn't 
require much work to make it fully multi-instance safe.
Maxim
21-May-2009
[4841x3]
nope... no errors.  the only issue is the Rconsole, but they don't 
use it.
and obviously, you musn't have two servers with the same ports.
graham: what kind of errors are you getting?
Graham
21-May-2009
[4844]
I ignore them :)  But I think logging is one
Janko
21-May-2009
[4845x3]
as Henrik said.. cheyenne was certanly rebol "web-window" for me. 
The day I tested and saw it can handle 300req/sec I switched to rebol 
for webdev.. there is no way I would use ordinary CGI to make webapps 
at this time.
for me too. = for me.
Graham: qwikitodo has close to 100 todos so it's "finished" although 
it will keep evolving, but it's a small project
Henrik
21-May-2009
[4848]
that said, if R3 provides the capability of producing a really good 
webserver in 5 kb, I might use that instead.
Janko
21-May-2009
[4849]
then I predich cheyenne will be really really good webserver in 4kb 
:)
Maxim
21-May-2009
[4850]
henrik: "that said, if R3 provides the capability of producing a 
really good webserver in 5 kb, I might use that instead."
what do you mean?


a webserver is not just about tcp/ip.... its all the framework it 
provides.  supporting the full range of reply errors, plugins, proper 
headers, etc , etc.  you can't really make that kind of thing in 
5kb.
Henrik
21-May-2009
[4851]
Well, maybe you can't. I haven't given any thought to what it takes. 
I was only thinking of the basics like large file transfer and proper 
working async ports and threading. some basics that a good webserver 
can do.
Maxim
21-May-2009
[4852x2]
right now, I can tell you that cheyenne, from the client's point 
of view, does all of that.  R3 will just allow it to be a bit faster, 
probably a bit more robust at the seams, and definitely easier to 
support, since some of the workarounds will now be implemented directly, 
and whatever is missing, doc can add/fix directly in binary.
apache coders would already be jealous at how easy it really is to 
build a mod right now... even the configs can be specified within 
the mod with a few words.
Dockimbel
21-May-2009
[4854]
Having the TCP/IP part open-sourced in R3 will be great. It will 
allow to use much faster OS hooks for file transfers, extend the 
port! API to bind only on selected interfaces, etc...I wonder if 
the main event loop will be there also, so we can replace the not-scalable 
Select( ) call by other faster ones or even integrate libevent. That 
would definitely make Cheyenne able to handle a much higher number 
of connections.
Maxim
21-May-2009
[4855x2]
:-)
for my part, when R3 goes open, I'll be integrating liquid-paint 
with OpenGL asap... which will completely alleviate my need for /view. 
 we will have a 3D native GUI  :-)
Henrik
21-May-2009
[4857]
bringing it up to the best servers speed wise will get people's attention.
BrianH
21-May-2009
[4858x2]
Not just the TCP code will be open in R3 - the HTTP port code will 
also be open. One of the goals is to make something like UniServe 
completely unnecessary for R3. This is not a criticism of UniServe, 
but of R2. If R2's networking infrastructure were good enough we 
wouldn't need UniServe.


Hopefully by the time that Cheyenne is ready to be rewritten for 
R3 it will be able to be written right on R3's HTTP ports.
HTTP port code will also be open -> HTTP port code *is already* open
Dockimbel
21-May-2009
[4860x2]
BrianH: the HTTP R3 scheme is client side only  or did I missed something?
I agree with your comment on UniServe to some extent. I'll see when 
R3 will go beta if I can remove that layer.
Pekr
21-May-2009
[4862]
libevent was suggested in the past, along with links to liboop etc. 
Not sure the licence is OK. Anyway - I wonder where do we go such 
a way? I can already imagine complete mess and tens of versions of 
custom R3s, if such low level things as main event loop are open-sourced 
and replaceable.
BrianH
21-May-2009
[4863x3]
Doc, the intention is for the R3 HTTP scheme to also support http 
server use. However, the current HTTP scheme is just a placeholder 
until someone can update or rewrite it. Client use is jst what (barely) 
works in the placeholder.
Gabriele wrote the current scheme, then stopped to work on other 
stuff. We're still waiting for someone to pick up where he left off.
Perhaps someone who has already written a kick-ass web server... 
:)