What are the other options against Zope?

G

godwin

Hi all,
I wanna thank Martin for helping out with my ignorance concerning
execution of stored procedure with python. Now i have decided to write
a web app that googles into my companies proprietary database. I need
to know whether zope is good for that job. But even the introduction to
zope in the zope book was intimidating. Are there any simple options?
If so plz tell me how i can obtain it and study it. I should say that i
am new to web programming.
Thank you
 
P

Peter Hansen

godwin said:
I wanna thank Martin for helping out with my ignorance concerning
execution of stored procedure with python. Now i have decided to write
a web app that googles into my companies proprietary database.

Just checking... do you really mean "googles", or is that in your mind a
synonym for "search"?
I need
to know whether zope is good for that job.

For which part of it? The web part, or the searching part? It's not
likely sufficient for the searching part, since it doesn't include
database interfaces other than to its own ZODB. What proprietary
database is involved?

-Peter
 
F

Florian Lindner

Peter said:
Just checking... do you really mean "googles", or is that in your mind a
synonym for "search"?


For which part of it? The web part, or the searching part? It's not
likely sufficient for the searching part, since it doesn't include
database interfaces other than to its own ZODB. What proprietary
database is involved?

That's not correct. Zope2 includes DB interfaces to MySQL, PostGre, ODBC and
many others.
For Zope3 IIRC there are not yet so many interfaces.

Florian
 
P

phil

Peter said:
Just checking... do you really mean "googles", or is that in your mind a
synonym for "search"?



For which part of it? The web part, or the searching part? It's not
likely sufficient for the searching part, since it doesn't include
database interfaces other than to its own ZODB. What proprietary
database is involved?

-Peter

I think the guy might like to know what Zope is.
I went to an IBM all day once, can't even remember the
name of their "web services". At smoke breaks would
compare notes with other attendees. I'm not sure we
ever understood, but we all agreed the problem
was "undefined terms" which I call organic buzz words.

Zope is like that to me. I ask what is it and the answer
sounds like "Oh, it's oierbv for the zxcvioupo of 7cvn^djh'.

Now understand, I know what very well what Python, Apache, PhP,
MySQL, IE and javascript do. I just don't know what Zope
does.

And if the answer is going contain phrases like "brings together"
or "sits on top of", don't bother. :)
 
D

Dennis Lee Bieber

And if the answer is going contain phrases like "brings together"
or "sits on top of", don't bother. :)
Well... From what I've seen, it doesn't "sit on top of"
either... It sits under... <G>

Plone being an example built on top of CMF, CMF being one
"content management framework" built on top of Zope.

As for Zope... Guess one would have to fall back on the expanded
name "Z Object Publishing Environment" (no idea where the Z gets into
things). A rather object-oriented system for managing and serving web
applications and data (using object inheritance for common behavior,
etc.) This makes Zope a toolkit, not an end application itself.


--
 
P

Peter Hansen

Florian said:
Peter said:
[Zope] doesn't include
database interfaces other than to its own ZODB.

That's not correct. Zope2 includes DB interfaces to MySQL, PostGre, ODBC and
many others.

It actually *includes* them? I thought those were all add-in modules,
not ones that Zope actually installs. (I admit it's been a couple of
years since I was current with the state of Zope... and my memory sucks.
:-( )

-Peter
 
P

phil

either... It sits under... <G>

Well that's a relief, cause ...sits on top of....
was confusing.

A rather object-oriented system for managing and serving web
applications and data (using object inheritance for common behavior,
etc.) This makes Zope a toolkit, not an end application itself.


So that would make it Apache, with a Python CGI. Oh wait, Apache has
a Python CGI which can access Data bases and send objects to the client.

A web application is you deliver am html page and the user fills
in some forms, then submits the form, which is then validated
and another form is delivered. Right? Cool idea, IBM had that in
1975 it was called CICS.

I once asked my son-in-law tech support guy what is the Windows
registry, what does it do? He thought for a while and said
"Think of it as the soul of the machine". So I thought about it
as the soul of the machine for a while, then I asked;
"You don't know, do you", and he said "No."
 
T

Terry Hancock

Zope is like that to me. I ask what is it and the answer
sounds like "Oh, it's oierbv for the zxcvioupo of 7cvn^djh'.

Now understand, I know what very well what Python, Apache, PhP,
MySQL, IE and javascript do. I just don't know what Zope
does.

You know, that's a good question. Let's see if I can make a good
answer:

Zope is the "Z Object Publishing Environment".

It publishes a *tree* of *objects* stored in the ZODB which is
an object oriented database. Think of it as a monstrous pickle
implementation.

Zope folders are a lot like user-defined classes in your application.
They contain things, which is why they're called "folders". But
basically, from a programming perspective, what they contain
are their "attributes" in the class/object jargon (in reality it can
be more complicated, some containers use Python container
types like dictionary or list as their internal structure).

Of course, "publishes" means "publishes to the web".

Z:

So Zope includes an *object store*, a *publisher*,
and a *web server*. When the web server receives a request,
it asks the publisher to get it, which digs it out of the object
store. Then it goes back the other way, back to the requester
via the web.

Usually, you run the Zope webserver behind another proxy
like Apache, but it is possible to serve a site directly from
Zope. I never do that for production, because, Apache, being
much more completely tested is a safer bet for not crashing
or misbehaving under heavy loads. However, the built-in
Zope webserver (I believe it was once called Medusa) is
quite convenient for development and testing.

OBJECT:

Because Zope publishes Python *objects* instead of *files*,
they can have much richer structure (e.g. metadata) than
a site based on files stored in a filesystem. However, a set
of files stored in a filesystem is very much like an object
database, so

1) The ZODB is sometimes called the Zope Object FileSystem,
which I find a useful idea --- especially since ZOFS has some
extra constraints beyond what ZODB requires.

2) You actually can store contents of the ZODB *as* a filesystem
with associated metadata in auxiliary files. I believe this is
how the "filesystem storage" option for ZODB works (by default,
ZODB lumps all its data into one big container file "Data.fs" --
this is the "filestorage" option).

PUBLISHING:

Zope has also been called a "web application server", because
it's relatively easy to write highly-integrated, highly-dynamic
sites with it (and overkill to use it for purely static sites).

Objects are defined in such a way that they can be represented
as web pages. The publisher has a lot of default behaviors for
built-in types and the objects that come with Zope.

Zope "product" developers have the responsibility (and control)
over how their objects will appear when published.

ENVIRONMENT:

If you want to think of it as a "web application server", then
basically, Zope is your "operating system", and your site is
your "web application software".

Zope also provides some specialized programming language
help --- Python scripts that can be edited through the web,
and two "Templating Languages" for designing web pages that
will have dynamic content. You can think of the templating
languages as being similar to PHP or ASP style programming.

But "Zope Zen" says that the serious code should be either
in Python scripts or in Python products (on the filesystem,
instead of in the ZODB, like scripts). Templates are meant
to be simple, simple, simple. But that's a style issue.

This stuff provides the Zope "operating system" with a
"shell". And the "Zope Management Interface", which is
what you see when you visit the /manage page at a Zope
site, is the "window system" or, perhaps more accurately,
the "file browser" of that "operating system".

So, in fact, Zope does quite a bit. But it isn't really all
that hard to understand. It's just not been well-introduced,
because the people explaining it have a tendency to forget
that it isn't all obvious, because it seems that way to
them, now that they know it.

But that's the newbie's problem in all areas of software, ISTM.

HTH,
Terry
 
D

Dennis Lee Bieber

I once asked my son-in-law tech support guy what is the Windows
registry, what does it do? He thought for a while and said
"Think of it as the soul of the machine". So I thought about it
as the soul of the machine for a while, then I asked;
"You don't know, do you", and he said "No."

The Windows registry is "a maze of twisty little passages, all
alike" <G>

No joke either... You may find an application entry that has a
GUID, the GUID has a file extension, the file extension points to the
application <G>

The registry a cryptic, bloated, system by which M$ can hide
details about anything they want... Instead of having separate .INI
files scattered about.

I recall when W95 had a system restore utility that was supposed
to write core system files to a floppy for use in booting a system when
the main boot sector has gone bad... Problem is that even a small W95
system soon had a registry that was 5+MBytes. Try fitting that onto a
floppy.

--
 
T

Terry Hancock

So that would make it Apache, with a Python CGI.

No. No object tree there --- except the filesystem, which is a braindead
object tree, so doesn't really count. It is a *little* like a Macintosh
filesystem, which has metadata stored for each file.
Oh wait, Apache has
a Python CGI which can access Data bases and send objects to the client.

Yes, you could use that to re-write everything that Zope does
for you. Why would you want to?

However, many people do apparently do this all the time.

Of course, Zope is by no means the only way to create a site,
and may not be appropriate for everybody. But it is darned
useful.
A web application is you deliver am html page and the user fills
in some forms, then submits the form, which is then validated
and another form is delivered. Right? Cool idea, IBM had that in
1975 it was called CICS.

This is true in the same sense that Python is unnecessary
because all programs can be written in assembler. Or machine
code for that matter. Entered by flipping switches, even -- throw
away that keyboard.

I have actually seen this done, BTW. Even though I'm theoretically
too young. ;-)
I once asked my son-in-law tech support guy what is the Windows
registry, what does it do? He thought for a while and said
"Think of it as the soul of the machine". So I thought about it
as the soul of the machine for a while, then I asked;
"You don't know, do you", and he said "No."

I did already post a serious reply, but now I'm afraid I've been
trolled. :p

I was assuming you actually wanted to know what Zope was.

Yes, it is a funny story, though. ;-)
 
M

Mike Meyer

Terry Hancock said:
This is true in the same sense that Python is unnecessary
because all programs can be written in assembler. Or machine
code for that matter. Entered by flipping switches, even -- throw
away that keyboard.

I have actually seen this done, BTW. Even though I'm theoretically
too young. ;-)

I've actually done this. But the real point of having switches to flip
isn't so you can enter programs - it's so you can interrupt the
kernel should you drop it into a tight loop. You poke an invalid op
code into the middle of the loop, and let it panic.

I've actually seen this done as well.

<mike
 
C

Christopher Subich

Dennis said:
The Windows registry is "a maze of twisty little passages, all
alike" <G>

ITYM "a maze of twisty little passeges,
{058C1536-2201-11D2-BFC1-00805F858323}"
The registry a cryptic, bloated, system by which M$ can hide
details about anything they want... Instead of having separate .INI
files scattered about.

A registry, in general, is a decent idea. It's more robust and more
permanent than environment variables, and the centralization is better
than INI files scattered about (probably). The problem is that the
Windows Registry has passed beyond all mortal ken, probably sometime
around when they started indexing things by GUID, losing any hierarchy
based on application.

That, and the file format definitely isn't robust to bit-rot that
happened too often on FAT16/32 filesystems.
 
M

Mike Meyer

Christopher Subich said:
That, and the file format definitely isn't robust to bit-rot that
happened too often on FAT16/32 filesystems.

From where I sit, the critical difference between the registry and a
set of .ini files (or Unix rc files) is that the registry requires
special tools to tweak if it gets so busted you can't boot the
system. The .ini (rc) files require nothing more complicated than an
editor. Editors you sort of have to know - so fixing the .ini (rc)
files doesn't require learning anything beyond the configuration
system. To add insult to injury, the tools for hacking the Windows
registry all require you to bring up a GUI, which means your "rescue"
disk has to include a GUI.

Note that Unix isn't immune to things like the registry. AIX(*) puts
all the configuration information in an object database, that require
special tools to manipulate. At least AIX provides CLI and
curses-based tools to do the work.

<mike

*) I know, some people don't consider AIX to be Unix. But it at least
reminds you of Unix...
 
F

Florian Lindner

Peter said:
Florian said:
Peter said:
[Zope] doesn't include
database interfaces other than to its own ZODB.

That's not correct. Zope2 includes DB interfaces to MySQL, PostGre, ODBC
and many others.

It actually *includes* them? I thought those were all add-in modules,
not ones that Zope actually installs. (I admit it's been a couple of
years since I was current with the state of Zope... and my memory sucks.
:-( )

Ok, you're right. But I don't really think it makes a difference to install
them afterwards.

Florian
 
P

Peter Hansen

Florian said:
Peter Hansen wrote:
[Zope] doesn't include
database interfaces other than to its own ZODB.

Ok, you're right. But I don't really think it makes a difference to install
them afterwards.

Probably not, but until the OP sheds more light on what this "companies
proprietary database" actually is, and what "googling" means, none of us
can do more than guess as to what would make a difference or not...

-Peter
 
P

phil

I did already post a serious reply, but now I'm afraid I've been
trolled. :p
I hope you did not think I was dissing your response, because I

certainly was not and in fact recognized your response as a
sincere effort to enlighten.

To whomever I directed sarcasm I apologize. My frustration is 20
years old and has nothing to do with you or Zope.

Anyway, thanks Terry, I still don't know what Zope is but I need to
accept that it's just a toolkit and I'm not gonna know until
I dig in and as long as my web needs are simple, I probably won't.
 
S

Some Fred

Anyway, thanks Terry, I still don't know what Zope is but I need to
accept that it's just a toolkit and I'm not gonna know until
I dig in and as long as my web needs are simple, I probably won't.

Actually, I found playing with CherryPy (http://www.cherrypy.org) an
easier way to "get" Zope than digging into Zope directly. It also took
me a good while to understand what an "application server" was, for
that matter.

AFAIK, Zope can be summed up as...

- a server application that uses an object-oriented database (ZODB) to
store items (static or dynamic HTML pages, images, scripts, etc.) as
an alternative to storing data in either a SQL database and/or a
filesystem (although Zope can connect to a SQL database, if need be)

- the use of an OO-database makes it possible to map URLs to scripts
(like it's done when mapping URLs to script pages in the filesystem),
with some added benefits

- a major benefit of the ZODB is "acquisition"
(http://www.zope.org/Members/Amos/WhatIsAcquisition), ie. if an object
is not found in the "directory" pointed to in the URL, ZODB will
search for it by going up the tree all the way to the root, and either
return the object if any is found along the way, or a 404. This makes
it possible, for instance, to locate objects common to different
sections of your site at the root of the site

- scripts are mostly written in Python, since Zope is written partly
in Python, and partly in C, although Zope also supports scripts in
Perl. If you like, you can also write scripts à la PHP, ie. include
code in HTML pages, using two templating languages: DTML is the older
one, and ZPT is the more recent one.

HTH
Fred.
 
G

godwin

Actually i want to create a "google" like web interface to any rdbms
and search as we all do it in google.That would be great isn't it.
Thank u for your queries.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,817
Latest member
AdalbertoT

Latest Threads

Top