[Zope] Zope, Apache/NT, Reliability issues

J. Michael Mc Kay admin@ihosts.net
Fri, 9 Jun 2000 02:50:26 -0400


Can I jump in?

What is the process involved for pcgi or Zope to pass authentication?  I am
not running Apache, but good old dependable Website Pro. When I attempt to
run Zope via pcgi it works fine unless I want to manage or allow a client to
log into a products administration screens.  I am returned an error when
trying to access, for example, Squishdot admin or Zope manage. On the other
hand users can log into and use the portal product.

Zope is not accepting the management login info. My understanding is not
clear on what Apache does to accept log ins via pcgi.  For that matter the
same for IIS. I am not sure that IIS is really only accepting NTusers. The
reading I have done so far suggests this may be the case.

Zope & Apache are HTTP1.1 compliant? Website is 1.0 or partially 1.1.......
can this be part of the problem?  I run into some problems with requests and
compliancy when using newer utilities against the server.

The conversation below suggests that pcgi passes requests to Zope.  I am
confused about this because I am told this is a Website issue, but when
explained in it's simplest terms (below) it appears to be a pcgi or Zope
issue.

The error I am receiving says that the webserver may not be able to forward
cgi requests (? it's been awhile since I looked at it) This doesn't make
sense if pcgi is  passing the info on. I guess I am asking "Where exactly is
authentication breaking down when using pcgi....or where is it most likely
to break down?

Website has only 15 percent of the NT market share (it's the price tag I'm
sure) and it is hard to find someone to share these experiences with, so
thanks for allowing this intrusion..

_______________
PCGI passes on requests to Zope, where Zope can handle multiple requests at
the same time. Basically, requests are handed over to ZServer ass if the
request came in directly. PCGI takes some care of waiting for ZServer to
become available if it is congested.

So, there is one Zope instance running that can listen to normal HTTP
requests, FTP requests and PCGI requests (any combination of that). The PCGI
CGI's are fielded on requests coming though Apache and hand back the results
to the client.

> And what about the method of "masquerading" the ZServer through Apache?
> I have read solutions using the Rewrite module and the Proxy module, but
> it actually means (roughly speaking) that if there are 10 requests
> made to Apache then it will make 10 requests to ZServer so, considering
> only the reliability issue of the server even if Apache can handle
> millions of requests per second, the ZServer would fall down much faster
> than that so I cannot see any advantage of using Apache in front of it.
> Of course I understand the other advantages of Apache as itīs many
> configuration options, robustness as a web server, etc, but can the
> ZServer stay up and running in pair with Apache? Maybe thereīs any way
> to configure Apache to cache the pages -- as a Squid would -- so it can
> "filter" the requests and low the requests level that it will do to
> ZServer?

People generally use Apache for combining Zope with other content. Zope is
good at serving dynamic content, Apache at static, so if you serve Zope
behind
Apache, you can mix and match. Also, when you have existing CGI, PHP or
other
Apache dependant content that you want to make available from the same base
URL, you will need to use Apache in front of Zope.

You can, IIRC, use tge ProxyPass trick together with caching as well,but I
have no experience with that. There is one big disadvantage to using
ProxyPass
at the moment, which is that you need to use the SiteAccess product to make
it
work correctly. The SiteAccess product has some known issues and causes
regressions in parts of Zope, like the ZCatalog. These issues _shold_ be
solved with the upcoming 2.2 release of Zope.

> And what about itīs object oriented database? I also have some doubts
> about it. I worked a lot with relational databases as MS SQL and MySQL
> but never tried to study an OO approach to DB. How fast it is? How much
> requests can it handle without hanging, collapsing or corrupting data? I
> mean, anyone tried to do some study of a database that changes everytime
> and have queries everytime, I mean, searches in a database where itīs
> data changes constantly (searching a static database is much different
> than searching on a mutable one). Row level locking, transaction,
> consistency, etc, all these concepts apply here? Can it be substituted
> by a traditional relational database and have itīs contentes interfaced
> to "looks like" object oriented?

The ZODB, Zope's Object Database, is an integral part of Zope. As soon as
you
look at Zope through the management interface, you are looking at objects
stored in the ZODB. Zope is inherently OO, and you generally use object
instances to build your site.

The ZODB is transactional, is optimized for high reads, low writes, and
takes
care of access conflicts not by locking, but invalidating all connections
that
use an object that has been altered by another connection. Zope reacts to
this
by retrying the requests whose connection was invalidated. Because
everything
is transactional, this works great. There is detailed documentation on ZODB
available at:

  http://www.zope.org/Documentation/Developer/Models/ZODB/

The default Storage component is FileStorage, which provides Undo and
support
for Versions, and which stores all data in one file (easy backup). Other
Storage components are available, like one that stores data in Berkeley DB
(but doesn't support Undo and Versions, IIRC), a DemoStorage which layers
over
another Storage and keeps all changes in memory, it doesn't ever write them,
and soon ZEO will be available, a Storage that enables you to share a
Storage
on a Storage server, effectively providing scalability, availability and
distribution:

  http://www.zope.org/Products/ZEO/ZEOFactSheet

With SQL Methods and Database Adapters you can of course still integrate
legacy data from SQL RDBMs into your app. Object storing a la WebObjects
isn't
supported out of the box, but could be built on top of the Zope framework.

--
Martijn Pieters
| Software Engineer    mailto:mj@digicool.com
| Digital Creations  http://www.digicool.com/
| Creators of Zope       http://www.zope.org/
|   The Open Source Web Application Server
---------------------------------------------

_______________________________________________
Zope maillist  -  Zope@zope.org
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )