[Twisted-Python] Fw: Zope and Twisted
Itamar Shtull-Trauring
twisted at itamarst.org
Wed Feb 5 09:54:15 MST 2003
This is the first email I got.
--------------------------------------------------------
Begin forwarded message:
Date: Tue, 4 Feb 2003 10:54:39 -0800
From: "Pierre Johnson"
To: <itamar at zoteca.com>
Subject: Zope and Twisted
Hey Itamar,
I read your 9 Dec 2002 weblog entry. Agreed Zope 2 is kludge. However,
Twisted is kludge too. Say What?
Twisted does not conform well to the OSI model. Each layer should have
an
abstraction and implementation for whatever it is one wants to
implement.
Additionally, one need include a interfaces module that keeps interfaces
separate from implementation.
Here's some sketches about implementations, e.g.,
OSI.Network.py
class NetworkLayer: # an abstraction
OSI.Network.IP.py
import OSI.Network
class IP(NetworkLayer):
...
OSI.Transport.py
class TransportLayer: #an abstraction
...
OSI.Transport.TCP.py
import OSI.Transport
import OSI.Network.IP
class Transport.TCP(Transport, IP):
...
OSI.Session.py
class SessionLayer: # an abstraction
...
OSI.Session.DNS.py
import OSI.Transport.TCP
import OSI.Network.IP
import OSI.Session
class DNS(Session, TCP, IP):
...
OSI.Application.py
class ApplicationLayer: # an abstraction
...
OSI.Application.FTP.py
import OSI.Transport.TCP
import OSI.Network.IP
import OSI.Session.DNS
import OSI.Application
class FTP(Application, DNS,TCP,IP)
...
This kind of abstraction schema allows for quicker programming than the
current Twisted schema as written by the so-called "abstraction
astronauts".
Bear in mind that this is a sketch and by no means the exact why I would
do
it.
Clearly, a perusal of the Twisted code demonstrates that Twisted does
not
separate transport from protocols or at least not cleanly.
Thanks for your time.
Pierre Johnson
More information about the Twisted-Python
mailing list