[Typo3-dev] Typo3 Application Server

Kraft Bernhard kraftb at mokka.at
Mon Jan 24 21:45:36 CET 2005


Michael Scharkow wrote:

>> I lately had thoughts about an Typo3 Application Server.
>>
>> Let me explain what I understand under this term.
>> For me an Application Server (like Zope) is an application which always
>> runs and waits for incoming requests. When a request comes in it does a
>> specific task.
> 
> 
> Why, isn't TYPO3 just doing that with apache? I mean you can't run TYPO3 
> without a webserver which always runs.

But I want that THE APPLICATION always runs ... not the daemon by which
the application is started again and again. ... so the application can
read in data and output it to other sources ...

> 
>> I tought of an php application which always runs. So a CGI/CLI 
>> application
>> like the dmailer script or similar. It has to set set_timeout(0) to run
>> forever so safe_mode restrictions don't have to be set for this kind of
>> PHP environment.
> 
> 
> First, I don't really think PHP is suited for such a task, at least not 
> as much as Python or Java are. Can you name one single standalone app 
> written in PHP? I can't.

the dmailer script is one example for a standalone app that does a sensefull
thing. i have wrtten one myself ... a chatserver ... and i think there are
quite some out there else there wouldn't be a special "cli" version of php
if "cgi" could do the same ...

> 
>> This application should have some possibility to get controlled from an
>> webinterface (probably over IPC in linux and files/fifos in windows).
>> It should the be able to load modules which do specific tasks. It should
>> be able to support the developer with cross-plattform socket and IPC 
>> functions.
>> the modules to controll the single application modules can be implemented
>> as BE modules.
> 
> 
> I'm not sure I understand: You want to chat with the application server 
> (whatever it's implemented in) through the TYPO3 backend? XMLRPC comes 
> to my mind, which makes the implementation of the app server transparent 
> to the GUI (TYPO3 in this case).
> 

Well ... you could call this chatting but what I menat is that there is
a BE module which uses IPC to communicate to the application server and
with this channel it can load modules into the server, start/stop/restart
them (like daemeons/services under unix) ...

a chat is just a possible thing which you could implement with an application
server and is one of the not many things which come to my mind actually
,, except one things ... games ! pherhaps you know the chinese (or japanese)
game "Go" ... i wanted to implement it in typo3 .. and that required a
"live" server and i didn't have one at that time (now i already have on .. my
chat server)

you could implement almost any live-game with an application server ...
and games are a thing typo3 is missing ... i think !


>> i think it should be possible to implement this outside of the core as
>> an extension.
> 
> 
>> chat's, automatically updating "online-users" and whatever else needs an
>> HTTP connections which stays "online" for updating the sent content (for
>> example via javascript) could be implemented with such an application 
>> server.
> 
> 
> TYPO3 is basically a WEB framework, and so it works for publishing 
> content which is not updated in realtime. And if you need such a 
> function, you can use js or whatever to query the data source.
> 
>> what do you think about such a thing ?

The thing with javascript is that you have to reload a URL every,
lets say 5 seconds if you want to simulate something almost reealtime,
then it will surely create a very big load if there are 200+ users
on your server ...

i had 4% CPU load with 50 simultanous users in one chat room ...
which is quite fine i think ...


greets,
Bernhard
-- 
----------------------------------------------------------------------
"Freiheit ist immer auch die Freiheit des Andersdenkenden"
Rosa Luxemburg, 1871 - 1919
----------------------------------------------------------------------




More information about the TYPO3-dev mailing list