Commit eab98097 authored by Amos Latteier's avatar Amos Latteier

New changes and readme for second alpha of ZServer.

parent 9c84c3a7
......@@ -6,13 +6,42 @@ ZServer Changes
Releases
Zserver 1.0a1
ZServer 1.0a2
New Features
Inital release. Includes new threaded architecture--currently
Preliminary support for PCGI has been added. It is still not
complete and bug free. The main problem is that all newlines
seem to get converted to carriage return newline pairs...
Simple controls to limit FTP connections have been added to
help prevent denial of service attacks.
FTP now supports login with a username and directory, i.e.
'joe@Projects/JoesProject' which authenticates the login in
the specified directory. You can still use a normal username
and defer authentication until you cd to a directory where you
are defined.
Bug Fixed
Data was being dropped from POST requests because of a bug in
the sized input collection of asynchat.
HTTP Response headers were not being correctly set.
URL prefixes for the the Zope HTTP handler could not be set to
''. Now the empty prefix is the default, to simplify URLs.
ZServer 1.0a1
New Features
Initial release. Includes new threaded architecture--currently
limited to a thread pool of 1. Includes preliminary FTP
support. Includes HTTP support.
Bugs Fixed
None
ZServer Release 1.0a1
ZServer Release 1.0a2
---------------------
Welcome to the first Zope ZServer alpha release. This release provides
a first look at Zope/Medusa integration, and introduces FTP support in
Zope.
Welcome to the second Zope ZServer alpha release. This release
provides a first look at Zope/Medusa integration, and introduces FTP
support in Zope.
What is ZServer?
ZServer is an integration of the Zope application server and the
Medusa information server. See the ZServer architecture document for
more information.::
more information::
http://www.zope.org/Documentation/Reference/ZServer
ZServer gives you HTTP and FTP access. In later releases it will
probably offer more protocols such as PCGI, WebDAV, etc.
ZServer gives you HTTP, FTP, and PCGI access. In later releases it
will probably offer more protocols such as FastCGI, WebDAV, etc.
What is Medusa?
......@@ -29,18 +29,46 @@ What is Medusa?
ZServer FTP support
FTP access to Zope allows you to FTP to the Zope object hierarchy in
order to perform managerial tasks. You can:
What you can do with FTP
FTP access to Zope allows you to FTP to the Zope object hierarchy
in order to perform managerial tasks. You can:
* Navigate the object hierarchy with 'cd'
* Replace the content of Documents, Images, and Files
* Create Documents, Images, Files, Folders
* Delete any sort of object
So basically you can do more than is possible with PUT. Also, unlike
PUT, FTP gives you access to Document content. So when you download
a Document you are getting its content, not what it looks like when
it rendered.
So basically you can do more than is possible with PUT. Also,
unlike PUT, FTP gives you access to Document content. So when you
download a Document you are getting its content, not what it looks
like when it rendered.
Using FTP
To FTP into Zope, ZServer must be configured to serve FTP. By
default ZServer serves FTP on port 8021. So to connect to Zope you
would issue a command like so::
ftp localhost 8021
When logging in to FTP, you have some choices. You can connect
anonymously by using a username of 'anonymous' and any password.
Or you can login as a Zope user. Since Zope users are defined at
different locations in the object hierarchy, authentication can be
problematic. There are two solutions:
* login and then cd to the directory where you are defined.
* login with a special name that indicates where you are
defined.
The format of the special name is <username>@<path>. For example::
joe@Marketing/Projects
FTP permissions
......@@ -50,6 +78,13 @@ ZServer FTP support
download objects. Uploading and deleting and creating objects are
controlled by existing permissions.
FTP limits
You can set limits for the number of simultaneous FTP connections.
You can separately configure the number of anonymous and
authenticated connections. Right now this setting is set in
'ZServerFTP.py'. In the future, it may be more easy to configure.
Properties and FTP: The next step
The next phase of FTP support will allow you to edit properties of
......@@ -61,6 +96,42 @@ ZServer FTP support
We do not currently have a target date for FTP property support.
It will probably need to wait until Zope has property sheets.
How does FTP work?
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response
and formulates an appropriate FTP response. The FTP channel
stores some state such as the current working directory and the
username and password.
On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
module defines the Zope FTP interface, for listing sub-items,
stating, and getting content. The interface is implemented in
'SimpleItem', and in other Zope classes. Programmers will not
need to implement the entire interface if they inherit from
'SimpleItem'. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
ZServer PCGI support
ZServer will service PCGI requests with both inet and unix domain
sockets. This means you can use ZServer instead of
'pcgi_publisher.py' as your long running PCGI server process. In the
future, PCGI may be able to activate ZServer.
Using PCGI instead of HTTP allows you to forward requests from
another web server to ZServer. The CGI environment and HTTP headers
are controlled by the web server, so you don't need to worry about
managing the ZServer environment. However, this configuration will
impose a larger overhead than simply using the web server as an HTTP
proxy for ZServer.
PCGI support in ZServer is still incomplete.
To use PCGI, configure your PCGI info files to communicate with
ZServer by setting the PCGI_PORT, PCGI_SOCKET_FILE, and PCGI_NAME.
The other PCGI settings are currently ignored by ZServer.
Differences between ZopeHTTPServer and ZServer
Both ZopeHTTPServer and ZServer are Python HTTP servers.
......@@ -78,47 +149,29 @@ Differences between ZopeHTTPServer and ZServer
limited to one thread, since the object database cannot yet support
concurrent access. This should change within the next few months.
How does FTP work?
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response and
formulates an appropriate FTP response. The FTP channel stores some
state such as the current working directory and the username and
password.
On the Zope side of things, the 'FTPSupport.py' module provides a
few mix-in classes for Document, Folder, and File (which Image
inherits from). These mix in classes provide directory listing and
stat-like methods. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
Who should use ZServer?
This release is *alpha* quality. It should be used by Zope hackers.
If you are not inquisitive and self-reliant, this release will
If you are not inquisitive and self-reliant, this release may
frustrate you.
Installation
To install ZServer you need to do two things: edit the start script
and update some Zope files to introduce FTP support.
To run ZServer you need to edit the start script to set your
configuration. In the future will will probably provide a customized
start script as part of the Zope installtion process.
To edit the start up script, open 'start.py' in your favorite editor
and change the configuration variables. If you understand Medusa,
you can also change the rest of the script.
To edit the start up script, open 'ZServer/start.py' in your
favorite editor and change the configuration variables. If you
understand Medusa, you can also change the rest of the script.
To enable FTP support in Zope you need to update some files in
'lib/python/OFS'. You should probably first back up your 'OFS'
directory, or at least make copies of the files that will be
replaced ('Document.py', 'Image.py', 'Folder.py'). Then copy the
contents of ZServer's 'OFS' directory to your Zope 'lib/python/OFS'
directory.
Finally make sure the shebang line is right on the 'start.py'
script. You can use your own copy of Python, or the copy that came
with Zope (if you are using a binary distribution). If you are using
win32, you might want to create a bat file to run the 'start.py'
program with Zope's Python.
Finally make sure the shebang line is right on the start script. You
can use your own copy of Python, or the copy that came with Zope (if
you are using a binary distribution).
Now your ready to go.
Now you're ready to go.
Usage
......@@ -128,17 +181,20 @@ Usage
To stop the server type 'control-c'.
You should see some logging information come up on the screen.
You should see some Medusa information come up on the screen.
A log file will be written, named 'ZServer.log' by default.
Once you start ZServer is will publish Zope (or any Python module)
on HTTP and/or FTP. To access Zope via HTTP point your browser at
the server like so::
http://www.example.com:9673/Main
http://www.example.com:9673/
This assumes that you have chosen to put HTTP on port 9673 and that
you are publishing a module named 'Main'. Note: to publish Zope
normally you publish the 'lib/python/Main.py' module.
you are publishing a module named whose URL prefix is set to ''.
Note: to publish Zope normally you publish the 'lib/python/Main.py'
module.
To access Zope via FTP you need to FTP to it at the port you set FTP
to run on. For example::
......@@ -155,14 +211,15 @@ Usage
supports basic FTP commands. Note: When you log in your working
directory is set to '/'. If you do not have FTP permissions in this
directory, you will need to 'cd' to a directory where you have
permissions before you can do anything.
permissions before you can do anything. See above for more
information about logging into FTP.
Support
Questions and comments should go to 'support@digicool.com'.
You can report bugs and check on the status of bugs using the Zope
bug collector.::
bug collector::
http://www.zope.org/Collector/
......@@ -174,8 +231,8 @@ License
Outstanding issues
PCGI support is not done yet. The FTP interface for Zope objects may
be changed, i.e. 'manage_FTPlist' and 'manage_FTPstat' maybe changed
PCGI support is buggy. The FTP interface for Zope objects may be
changed, i.e. 'manage_FTPlist' and 'manage_FTPstat' maybe changed
and/or renamed. When FTP support for properties is added, this may
change a lot. WebDAV support will also probably cause a little
reorganization.
......@@ -184,8 +241,9 @@ Outstanding issues
originals. It would be good idea to try and keep deviations to a
minimum. For this reason we have been feeding bug reports and change
requests back to Sam Rushing for inclusion in the official Medusa
souces. It is possible, however, that Medusa and ZServer will
sources. It is possible, however, that Medusa and ZServer will
diverge in some small respects despite our best efforts to keep them
unified. One area in particular where ZServer currently departs from
Medusa is in the use of future producers. Change is likely in
ZServer's use of future producers.
......@@ -6,13 +6,42 @@ ZServer Changes
Releases
Zserver 1.0a1
ZServer 1.0a2
New Features
Inital release. Includes new threaded architecture--currently
Preliminary support for PCGI has been added. It is still not
complete and bug free. The main problem is that all newlines
seem to get converted to carriage return newline pairs...
Simple controls to limit FTP connections have been added to
help prevent denial of service attacks.
FTP now supports login with a username and directory, i.e.
'joe@Projects/JoesProject' which authenticates the login in
the specified directory. You can still use a normal username
and defer authentication until you cd to a directory where you
are defined.
Bug Fixed
Data was being dropped from POST requests because of a bug in
the sized input collection of asynchat.
HTTP Response headers were not being correctly set.
URL prefixes for the the Zope HTTP handler could not be set to
''. Now the empty prefix is the default, to simplify URLs.
ZServer 1.0a1
New Features
Initial release. Includes new threaded architecture--currently
limited to a thread pool of 1. Includes preliminary FTP
support. Includes HTTP support.
Bugs Fixed
None
ZServer Release 1.0a1
ZServer Release 1.0a2
---------------------
Welcome to the first Zope ZServer alpha release. This release provides
a first look at Zope/Medusa integration, and introduces FTP support in
Zope.
Welcome to the second Zope ZServer alpha release. This release
provides a first look at Zope/Medusa integration, and introduces FTP
support in Zope.
What is ZServer?
ZServer is an integration of the Zope application server and the
Medusa information server. See the ZServer architecture document for
more information.::
more information::
http://www.zope.org/Documentation/Reference/ZServer
ZServer gives you HTTP and FTP access. In later releases it will
probably offer more protocols such as PCGI, WebDAV, etc.
ZServer gives you HTTP, FTP, and PCGI access. In later releases it
will probably offer more protocols such as FastCGI, WebDAV, etc.
What is Medusa?
......@@ -29,18 +29,46 @@ What is Medusa?
ZServer FTP support
FTP access to Zope allows you to FTP to the Zope object hierarchy in
order to perform managerial tasks. You can:
What you can do with FTP
FTP access to Zope allows you to FTP to the Zope object hierarchy
in order to perform managerial tasks. You can:
* Navigate the object hierarchy with 'cd'
* Replace the content of Documents, Images, and Files
* Create Documents, Images, Files, Folders
* Delete any sort of object
So basically you can do more than is possible with PUT. Also, unlike
PUT, FTP gives you access to Document content. So when you download
a Document you are getting its content, not what it looks like when
it rendered.
So basically you can do more than is possible with PUT. Also,
unlike PUT, FTP gives you access to Document content. So when you
download a Document you are getting its content, not what it looks
like when it rendered.
Using FTP
To FTP into Zope, ZServer must be configured to serve FTP. By
default ZServer serves FTP on port 8021. So to connect to Zope you
would issue a command like so::
ftp localhost 8021
When logging in to FTP, you have some choices. You can connect
anonymously by using a username of 'anonymous' and any password.
Or you can login as a Zope user. Since Zope users are defined at
different locations in the object hierarchy, authentication can be
problematic. There are two solutions:
* login and then cd to the directory where you are defined.
* login with a special name that indicates where you are
defined.
The format of the special name is <username>@<path>. For example::
joe@Marketing/Projects
FTP permissions
......@@ -50,6 +78,13 @@ ZServer FTP support
download objects. Uploading and deleting and creating objects are
controlled by existing permissions.
FTP limits
You can set limits for the number of simultaneous FTP connections.
You can separately configure the number of anonymous and
authenticated connections. Right now this setting is set in
'ZServerFTP.py'. In the future, it may be more easy to configure.
Properties and FTP: The next step
The next phase of FTP support will allow you to edit properties of
......@@ -61,6 +96,42 @@ ZServer FTP support
We do not currently have a target date for FTP property support.
It will probably need to wait until Zope has property sheets.
How does FTP work?
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response
and formulates an appropriate FTP response. The FTP channel
stores some state such as the current working directory and the
username and password.
On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
module defines the Zope FTP interface, for listing sub-items,
stating, and getting content. The interface is implemented in
'SimpleItem', and in other Zope classes. Programmers will not
need to implement the entire interface if they inherit from
'SimpleItem'. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
ZServer PCGI support
ZServer will service PCGI requests with both inet and unix domain
sockets. This means you can use ZServer instead of
'pcgi_publisher.py' as your long running PCGI server process. In the
future, PCGI may be able to activate ZServer.
Using PCGI instead of HTTP allows you to forward requests from
another web server to ZServer. The CGI environment and HTTP headers
are controlled by the web server, so you don't need to worry about
managing the ZServer environment. However, this configuration will
impose a larger overhead than simply using the web server as an HTTP
proxy for ZServer.
PCGI support in ZServer is still incomplete.
To use PCGI, configure your PCGI info files to communicate with
ZServer by setting the PCGI_PORT, PCGI_SOCKET_FILE, and PCGI_NAME.
The other PCGI settings are currently ignored by ZServer.
Differences between ZopeHTTPServer and ZServer
Both ZopeHTTPServer and ZServer are Python HTTP servers.
......@@ -78,47 +149,29 @@ Differences between ZopeHTTPServer and ZServer
limited to one thread, since the object database cannot yet support
concurrent access. This should change within the next few months.
How does FTP work?
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response and
formulates an appropriate FTP response. The FTP channel stores some
state such as the current working directory and the username and
password.
On the Zope side of things, the 'FTPSupport.py' module provides a
few mix-in classes for Document, Folder, and File (which Image
inherits from). These mix in classes provide directory listing and
stat-like methods. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
Who should use ZServer?
This release is *alpha* quality. It should be used by Zope hackers.
If you are not inquisitive and self-reliant, this release will
If you are not inquisitive and self-reliant, this release may
frustrate you.
Installation
To install ZServer you need to do two things: edit the start script
and update some Zope files to introduce FTP support.
To run ZServer you need to edit the start script to set your
configuration. In the future will will probably provide a customized
start script as part of the Zope installtion process.
To edit the start up script, open 'start.py' in your favorite editor
and change the configuration variables. If you understand Medusa,
you can also change the rest of the script.
To edit the start up script, open 'ZServer/start.py' in your
favorite editor and change the configuration variables. If you
understand Medusa, you can also change the rest of the script.
To enable FTP support in Zope you need to update some files in
'lib/python/OFS'. You should probably first back up your 'OFS'
directory, or at least make copies of the files that will be
replaced ('Document.py', 'Image.py', 'Folder.py'). Then copy the
contents of ZServer's 'OFS' directory to your Zope 'lib/python/OFS'
directory.
Finally make sure the shebang line is right on the 'start.py'
script. You can use your own copy of Python, or the copy that came
with Zope (if you are using a binary distribution). If you are using
win32, you might want to create a bat file to run the 'start.py'
program with Zope's Python.
Finally make sure the shebang line is right on the start script. You
can use your own copy of Python, or the copy that came with Zope (if
you are using a binary distribution).
Now your ready to go.
Now you're ready to go.
Usage
......@@ -128,17 +181,20 @@ Usage
To stop the server type 'control-c'.
You should see some logging information come up on the screen.
You should see some Medusa information come up on the screen.
A log file will be written, named 'ZServer.log' by default.
Once you start ZServer is will publish Zope (or any Python module)
on HTTP and/or FTP. To access Zope via HTTP point your browser at
the server like so::
http://www.example.com:9673/Main
http://www.example.com:9673/
This assumes that you have chosen to put HTTP on port 9673 and that
you are publishing a module named 'Main'. Note: to publish Zope
normally you publish the 'lib/python/Main.py' module.
you are publishing a module named whose URL prefix is set to ''.
Note: to publish Zope normally you publish the 'lib/python/Main.py'
module.
To access Zope via FTP you need to FTP to it at the port you set FTP
to run on. For example::
......@@ -155,14 +211,15 @@ Usage
supports basic FTP commands. Note: When you log in your working
directory is set to '/'. If you do not have FTP permissions in this
directory, you will need to 'cd' to a directory where you have
permissions before you can do anything.
permissions before you can do anything. See above for more
information about logging into FTP.
Support
Questions and comments should go to 'support@digicool.com'.
You can report bugs and check on the status of bugs using the Zope
bug collector.::
bug collector::
http://www.zope.org/Collector/
......@@ -174,8 +231,8 @@ License
Outstanding issues
PCGI support is not done yet. The FTP interface for Zope objects may
be changed, i.e. 'manage_FTPlist' and 'manage_FTPstat' maybe changed
PCGI support is buggy. The FTP interface for Zope objects may be
changed, i.e. 'manage_FTPlist' and 'manage_FTPstat' maybe changed
and/or renamed. When FTP support for properties is added, this may
change a lot. WebDAV support will also probably cause a little
reorganization.
......@@ -184,8 +241,9 @@ Outstanding issues
originals. It would be good idea to try and keep deviations to a
minimum. For this reason we have been feeding bug reports and change
requests back to Sam Rushing for inclusion in the official Medusa
souces. It is possible, however, that Medusa and ZServer will
sources. It is possible, however, that Medusa and ZServer will
diverge in some small respects despite our best efforts to keep them
unified. One area in particular where ZServer currently departs from
Medusa is in the use of future producers. Change is likely in
ZServer's use of future producers.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment