World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
GrahamC 22-Apr-2011 [10017] | a small bone will do |
Maxim 22-Apr-2011 [10018] | web api |
Dockimbel 22-Apr-2011 [10019x3] | FYI, I'm working on setting up automated Linux builds for Cheyenne. |
Automated builds are now up and running (Linux only): http://cheyenne-server.org/download.shtml | |
I will push some changes tonight to see if it works as expected. | |
onetom 22-Apr-2011 [10022] | r u generating that download.shtml dynamically? |
Maxim 22-Apr-2011 [10023] | very nice download pages. probably one of the most conscice page of this kind I've ever been to :-) |
onetom 22-Apr-2011 [10024x3] | i found the version numbers pretty confusing though and the binaries are not sharply separated from the source packages |
newcomers have no freaking idea what is pro and what is cmd.. | |
but i don't have any explicit idea how to make it better, so i didn't want to complain yet ;D | |
Maxim 22-Apr-2011 [10027] | he actually does give the difference between /pro and /command on the page. |
onetom 22-Apr-2011 [10028] | but do i need a keyfile to run it? is it legal to run it? if there is a version which knows such extra features but still miniscule, what's the reason having to separate versions? |
Maxim 22-Apr-2011 [10029x3] | I guess there is one title which might be added... Nightly builds: just before "Sources tarballs of latest revision are also available" |
compiled versions do not require a key, that is what paying the SDK is for. there is no need to talk about license keys within the binary packages... there could be another page which lists all the various source license and REBOL interpreter requirements though, with just a link on this page. something like: <a href="rebol-vs-cheyenne-licensing.shtml" >notes about required REBOL license and interpreter version requirements for use of source versions </a> | |
(should remove the first "required" in that sentence ;-) | |
GrahamC 22-Apr-2011 [10032x2] | keys are not required to run sdk/command encapped builds |
keys are only required to do the encapping | |
Dockimbel 22-Apr-2011 [10034] | Thanks for your suggestions, I'll try to improve this page, especially for newcomers that don't know about REBOL. |
Maxim 22-Apr-2011 [10035x2] | ok, so I promised a little announcement about work I have been doing in/with/for cheyenne... I have built a web service module (mod) for cheyenne. ----------------------- features/highlights ----------------------- * extremely fine tuned to cause the least cpu hit on the server process since ALL processing is done in worker processes. * it uses an arbitrary number of rebol script files which you assign to any host in the config file. (even the default) * once assigned, these files are compiled dynamically (as one app) by the mod and are exposed via http by the server. * only the functions you *chose* are *ever* visible on the web, allowing you to include support libs, data and function right in your server-side api. * no direct execution of code occurs, *ever* from the client to the server, all input is marshaled, and parameters are typed to your function specs. * allows ANY type of web api to be delivered, from REST to SOAP like interfaces. * output is programmable, so that you can output AS json, xml, html, txt, etc. * interface is also programmable, so that you can provide GET params, POST forms, POST (XML, JSON, REBOL native data) * Automatic API documentation via source scanning and function help strings . there will also be some form of comments which will be used by documentation. * No suport for sessions. this is part of your application layer, which should use https and session keys in the submitted data, if you require it. * it takes litterally 5 minutes to convert your internal rebol code into web services which obey internet standards. * System is auto-reconfiguring... i.e. you don't need to close cheyenne to update the service, just restart the workers. |
so, when will this be available? *very soon* I am building my first test release for my client tonight. most of the research and prototyping is done, I already did some client demos for the people who are funding this project and I'm now in the "delivery" phase. The most complicated parts of the system are already working (i.e. handler processes, dynamic compilation, automatic api interface building, per-host api/config, request/response chain of command, multi-format output, and more.) a lot of details are still "up in the air" as far as implementation goes, so if you really have a need for this, PLEASE STAND UP and raise your voice. tell me what you need, how you want it to work, etc. so far I plan to deliver the first release with: support 4 interfaces for calling : GET url, POST XML, POST Form data, POST JSON. support 4 output formats : XML, HTML, JSON, TXT (which is in fact rebol native data) obviously this will be an ongoing project and anyone who is interested in helping out is welcomed to do so. :-) | |
Gregg 22-Apr-2011 [10037] | Sounds cool Max. We have some Cheyenne work going on, so this is definitely of interest. |
GrahamC 22-Apr-2011 [10038] | Interesting ... I just Cheyenne for pure http and don't serve other web services yet |
Maxim 22-Apr-2011 [10039] | I think this mod can open up new opportunities for cheyenne (well, its already opening up one more client of mine to cheyenne :-). especially when you'll see how brain-dead it is to setup. |
GrahamC 22-Apr-2011 [10040] | brain dead is not a requirement I hope! |
Maxim 22-Apr-2011 [10041x2] | hehe |
maybe I just make the config file in brainfuck language, just to make it look like its a sophisticated thing... I mean, when its too easy, it can be taken for granted ;-) | |
GrahamC 22-Apr-2011 [10043x2] | I recently implemented a soap api to interface with an online accounting package |
But I'd like to take it all inhouse as it were. So, I could use this to reimplement the server side SOAP services? | |
Maxim 22-Apr-2011 [10045x2] | yep. |
because the system actually self-identifies its available interface, we could even generate the SOAP xml schemas automatically, as in, totally dynamically. | |
GrahamC 22-Apr-2011 [10047x2] | So, all I have to do is provide the WSDL ? |
and it creates the soap services for me :) | |
Maxim 22-Apr-2011 [10049] | actually, you just provide the code and the WSDL would be built for you :-) |
GrahamC 22-Apr-2011 [10050] | the otherway suits me better .. that way I can use someone else's WSDL |
Maxim 22-Apr-2011 [10051x5] | yeah, but you still have to put the code behind. the web-api mod, provides an interface automatically based on what is actually being served. you could easily build a little WSDL to REBOL api file converter. just load the XML, extract the methods, the parameters and build an equivalent rebol function stub. Then all you'd have to do is implement the function body.... the only detail is the xml datatype which don't all map 1:1 within rebol, but that can usually be pretty well cornered within the code itself. |
maybe even just provide a little PARSE rule which provides input validation representing the given schema. | |
anyhow... for now SOAP is a larger beast to tackle and I'm more concerned with REST stuff right now, but since the system will be working and you can easily extend it, there is nothing stopping you from building the SOAP interface. | |
(if you need it before I can tackle it) | |
what is the most trouble free linux to run cheyenne on? | |
GrahamC 22-Apr-2011 [10056x3] | I've never had any issues with ubuntu that I couldn't solve |
except | |
how to start Cheyenne automatically ...when linux starts up. | |
Maxim 22-Apr-2011 [10059] | maybe Someone here knows how? |
Kaj 23-Apr-2011 [10060x2] | For me, the most trouble free Linux to run Cheyenne is Syllable Server :-) |
For autostarting (and shutting down) you have to hook into the init scripts, which are very different between Linux distributions. I remember having trouble with finding a straightforward way on Ubuntu, too | |
PeterWood 23-Apr-2011 [10062] | This any help? http://embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/ |
Kaj 23-Apr-2011 [10063x2] | pwd |
Oops, that was meant for my terminal | |
Dockimbel 23-Apr-2011 [10065x2] | Cheyenne revision 134: - FEAT: new config option (globals section): 'allow-method. Extends allowed HTTP methods. - FEAT: -w command line option extended to allow to specify an additional "start" number value. - FIX: -w 0 now starts Cheyenne with no workers at all (was spawning one at start until now). - DOC: updated %changelog.txt (was lagging behind a bit). See %changelog.txt for more info. |
Linux binaries r134 should be available in an hour at: http://cheyenne-server.org/download.shtml | |
older newer | first last |