1.55k likes | 1.73k Views
Zope for Content Managers. 8 th Annual International Python Conference January 24, 2000 Christopher Petrilli / Digital Creations, Inc. What is Zope?. What is Zope?.
E N D
Zope for Content Managers 8th Annual International Python Conference January 24, 2000 Christopher Petrilli / Digital Creations, Inc.
What is Zope? • Zope is the leading Open Source application server, specializing in interactive content such as portals and content management systems. • Mature system, based on many years of work in application servers
That Thing You Do • Zope specializes in two well known areas • Portals • Content Management
What is That Thing You Do? • Portal • explain • Content Management • explain
Advantages: Customer • Zope doesn’t just deliver pages to the customer, it provides the ability to engage in interactive, customized content. • URLs that “Mom” can understand
Advantages: Content Managers • Everything is through-the-web • Choose your weapon • Content re-use, order prevails over chaos • Flexible searching
Advantages: Developers • Modular architecture • Customizable searching • Rich object model • Integrated object database • Extensible security • Integration of external data
Advantages: Business • Keeping control. • Your website is the heart-beat of your electronic presence. If your site isn’t in business, you aren’t in business. • Unfortunately, the most important thing in the world to your technology vendor is their business plan, not yours. • Source code, right to fix, right to modify.
Advantages: Business • Price Advantage • Zope’s commercial competitors operate on a simple principal: account control. Everything is structured to make you pay a lot and pay repeatedly. • Competitive software can cost up to $1M just for the licenses, often $100K+ just to get started. Moreover, these other alternatives cash in on hidden charges, such as yearly transaction fees. • Zope is “free of charge.” Money saved on license feeds can be applied to actually getting a solution, rather than a piece of software.
Core Zope Advantages • Simple: Zope isn’t delivered on 2 CDs • Separation of roles • Delegation of control • Integrated environment • True web objects • Passionate community • Customers that have customers • Scalability
Simple • Manageable code base • ~88,000 lines of Python • ~45,000 lines of C • For comparison PHP4 is ~150K lines of C code • Built on core Python 1.5.2 distribution • Python has been described best as “executable pseudo-code.”
Separation of Roles • Robust security expression • Differentiation between users, roles and permissions • Users may have roles only in a “local” context. This is granular to the object level.
Delegation of Control • Content managers control content • Developers control logic • Administrators control server • You can structure control any way you desire
Integrated Environment • Object management through-the-web • Simple interface • Provides a unified OO interface to both Zope data as well as legacy information
True Web Objects • Conversion of URLs to objects • Ability to hide the low-level transport (HTTP) from the developer • Develop reusable objects which present themselves via multiple methods
Passionate Community • Over 1,500 members of the mailing lists • Lists have reached saturation point in volume • For reference, 2500/month = over 80/day
Scalability • > 1,000,000 hits/day on commodity hardware • Compares favorably with other application servers • Tries to play friendly with caching • Commercial solutions for high-scale situations (Zope Enterprise Option)
Architecture: Python • “And now for something completely different…” • Why Python?
Architecture: ZServer • Asynchronous multi-protocol server • PCGI, FastCGI • HTTP, XML-RPC (SOAP soon), WebDAV • FTP • Monitor client (Python interface) • Based on Medusa (Sam Rushing) • Similar architecture to two top performing web servers: thttpd and Zeus.
Architecture: ZPublisher • Converts URLs to objects • Provides for a simple URL design: • http://www.acme.com/UK/Sales/Employeesrather than:http://www.acme.com/cgi-bin/employees.cgi?country=uk&dept=sales
Architecture: Framework • Provides for web page design and scripting (Document Templates/DTML) • Core object types • Ability to extend with new classes (ZClasses) • Robust security paradigm
Architecture: ZODB • In its 3rd major revision (ZODBv3) • Full transactional database with distributed commits • Provides full undo capabilities
Architecture: ZSQL Methods • Provide advanced integration with relational data • Dynamic query generation (no more canned queries) • Advanced caching of results • Database independent • Integrates with all major databases
Installation Options • Binary distributions • Win32 • Linux • Source distribution • Most any other platform on which Python has been installed
Unpacking the Software • The Windows binary for Zope is packaged using WISE • This gives a friendly installation scheme • Double-click on the .EXE file and answer questions
License Review • Review/Accept the Zope Public License • ZPL = Open Source™
Destination Directory • Select destination directory • Check disk free space
Superuser Name/Password • Specify the initial superuser username and password • Can be changed at any time • Only referenced on process start. Any changes require a restart
Install files • Install files • Program groups • Registry entries
Web Server Selection • Built-in ZServer • Integrating with existing server • Apache • IIS • Netscape • Others
Win32 Registry Artifacts • Entries in the Windows registry... • Under: MyComputer\HKEY_LOCAL_MACHINE\SOFTWARE\Digital Creations\zope\
The Access Files • How do you create the first user? • The access file in the Zope directory gives username and password for “superuser” • The format is significant, and the default is SHA1 encoded.
A Directory Tour • bin contains Python binary • lib contains the software • var holds the data (specifically, the Data.fs file!)
Zope From Source • Setup Python sources • Run Zope build script • Consider using public CVS
Adding Products • Zope is modularized into separate products • Additional products are unpacked into the lib/python/Products directory • When Zope is restarted, the new product should be available • Import problems can be debugged in the Control Panel
Zope v2 and ZServer • Zope v2 makes it far easier to setup Zope • Taking process activation out of PCGI makes integrating with web servers significantly simpler • Connect simultaneously through Apache, internal web server, or FTP • Internal monitor allows login to the Python prompt inside the server
Common Issues • Integrating with Apache is very hard • Directory permissions are important • Changing from built-in server to Apache takes a few steps • Incorrectly installing a product
Zope Management Model • Zope is designed to be managed “through the web” • A few operations (e.g. adding products) require disk access • Content is not “strewn” around the file system
Zope Management Interface • Two-paned UI like Windows Explorer • Navigator (on the left) • Workspace (on the right) • Views along top • HTML 3.2 with/some JavaScript • Available at:http://server.com/. . ./manage
Roles for Managing Zope • Sneak peek to security: • Using Zope management interfaces requires that the user authenticate as a user with the Manager role • Immediately following installation there is one (1) user defined in the access file in the Zope home directory • By definition this user has all roles
Zope Management Interface • Logging In • Authentication initially controlled with username and password stored in access file • access file stored in the root of Zope installation • formatsuperuser:{alg}password • Superuser has all roles!
Authenticating to /manage • Accessing the /manage interfaces will challenge the user or a password using Basic Authentication • Password is in clear text • Can be used in conjunction with Secure Sockets Layer (SSL) for more security • Although you don’t type it in each time, login is transmitted on each request