Hello,
today we released SRM: Script Running Machine version 0.6.0. This release
is the first public beta. The following functions are implemented in this
release:
- Session management
- Remote functions
- Application level variables
- Remote objects
For a full feature list please see:
http://www.vl-srm.net/newsitem.php?id=1 or the attached announcement.
SRM is downloadable from http://www.vl-srm.net/download.php and _requires_
the latest CVS version of PHP. For documentation see the website.
With kind regards,
Derick Rethans
Vulcan Group
---------------------------------------------------------------------
SRM: Site Resource Manager - www.vl-srm.net
---------------------------------------------------------------------
Release: SRM 0.6.0 Spring Nights
SRM as session handler
This is the first implemented feature, and should be gamma quality. It
works just like the 'files', 'mm' or 'pgsql' session handler. The only
thing you need to do is change session.save_handler in php.ini . At
this moment the location is hardcoded (a shame, but an easy fix). It
defaults to 'localhost'.
Calling remote functions in SRM
There are two different situations that can occur here:
1. The remote function is defined in a module, written in C. For
example from the standard module: get_function_list() or
get_application_keys(). The module API is quite easy (easier than
PHP modules), and it should therefore not be a problem to add
other modules. One of the included modules is the 'auth' module,
which makes it possible to authenticate users with PAM, password
files, or for example a Challenge-Response protocol (this last one
is finished, but it should be merged into the auth module).
2. Functions defined in PHP function libraries. PHP function
libraries are loaded at startup of the daemon. The PHP scripts
that are part of this library get compiled and executed. Because
the compiled scripts are not destroyed after that, it is possible
to call them from a client side PHP script again, without having
to parse/compile them.
Both types of functions are called in the same way, and are run in the
SRM daemon:
<?php
$srm_obj = new SRM ('srm.vl-srm.net', 7777);
$ret = $srm_obj->function_name($var1, $var2);
?>
Application level variables
Application level variables are variables stored in the SRM daemon,
persistent across requests. This means that you can use these in every
script, using them is very easy:
<?php
$obj = new SRM ('localhost', 7777);
$obj->globals['var'] = $data;
$data2 = $obj->globals['var'];
?>
Namespaces should be implemented here, so that you can have
application variables for every different application you have.
Remote objects
Remote objects are PHP scripts, running permanently in the SRM Daemon.
We call these remote objects SRMApps, or Bananas. You can instatiate
them just like a normal object, as is done in this example:
<?php
$srm = new SRM ('localhost', 7777);
$uptime = new SRMApp ($srm, 'Uptime');
?>
You now can use the $uptime object like a normal PHP object, with the
exception that it is run remotely.
Roadmap:
0.6.0-beta
* Beta release including features above.
0.6.1
* Get rid of the srm_dll code, and improve datatypes to reflect PHP
datatypes.
* Implement timed events for Bananas.
* Accessing session vars from Bananas.
0.7.0
* Bananas for a session.
* Protected properties and member functions in Bananas.
* Make use of ADT.
* Rewrite the connection handling code to have threads handling
connection.
0.8.0
* All exciting ideas we might get, either by ourselves, or from you.
Derick Rethans
� 2000, 2001, 2002 by The Vulcan Logic Group
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php