|
|
||||||||||||||||||
|
|
||||||||||||||||||
![]() |
![]() |
Version 1.0 / January 19, 2004
|
|||
|
SuperGuide for Newbies (Part I of III) - Welcome to the World of Zope! - - - - - - - - - - - - By Mark Pratt, Kristoph Kirchner, Eric-Peter Germain | January 19, 2004 Foreword Here at ZopeMag we are committed to being a good Zope/Plone community member, so in addition to the many free articles that come with every issue we are proud to contribute what we hope will become the premier resource for Zope Newbies: the "Zope for Newbies SuperGuide." While this SuperGuide is written mainly for beginners, we hope that an occasional nugget of information may also be of help to the more experienced Zope user or developer, for example if he/she needs to learn about Zope Sprinting or the Zope Public License. Zope is in constant and rapid evolution – it's practically impossible to be knowledgable in every relevant area. One last thing before we get started: this is the first of many SuperGuides we will publish but it will likely be one of the few we can make available for free. (In contrast with the free articles we publish every quarter). If you like this Guide you should consider a ZopeMag subscription. As a subscriber you will get access to hundreds of pages of Zope documentation not found in any books or on the Web and written by some of the most talented people in the community. Most importantly, you will be helping to guarantee that these talented developers and writers get paid to write even more valuable documentation, a good part of which we make freely available to both beginners and experienced Zope users alike. Enough said -- let's get to it! IntroductionSince we don't know much about you, whether, for example, you're a Web designer, a programmer, a content manager, or some other professional in the growing community of people that have become interested in the possibilites Zope offers, we will try to give as much detail as possible. If you're too advanced for a particular section, skip around, we have provided plenty of links, almost all of it to free resources, free ZopeMag articles or miniGuides. Another, more technically oriented, resource is the "Introducing Zope" chapter from The Zope Book at: http://zope.org/Documentation/Books/ZopeBook/2_6Edition/IntroducingZope.stx
Zope is an "Open Source Web Application and Content Management Server". Let's explain the terms used here: Open Source, application server, Web application, content management: Open Source means that Zope's source code is freely available and anyone capable of modifying its code can change Zope's code to their liking (to do this one must be intimately familiar with Python, the language most of Zope is written in – more about this below). Perhaps the easiest way to understand what an Application Server is, is to think of an operating system: An operating system provides fundamental services for the user – the saving of files, the presentation of the directory tree, etc. – which allows software developers to concentrate on higher level work. The programs in the operating system that provide these services can be called "applications" and the operating system "serves" them to the user. Zope performs this same function for work with the Web. It serves the user with a large number of functions ("applications") which facilitate work with the Web – for example, for defining groups of users for Websites called "roles" and allowing them access to certain parts of the Website (this is part of Zope's authentication facility called the acl_users Folder), or for creating dynamic Web pages. Because of the many functions included within Zope "out-of-the-box" developers can focus on the development of the Web Application itself not on technical details which have nothing to do with the customer specification. What's a Web Application? Web applications differ from regular software applications in that they typically:
Examples of Web Applications can be found on just about every Website you visit that allows you to interact with it beyond clicking on a link. When you visit Google to search for something, you interact with it by typing in things you're looking for (and by hitting the search button). Google then goes through its database and delivers search results based on the words you typed in. Google is a Web Application. You don't have to install it on your system (god forbid) to use it: it is installed on servers somewere out in Web space. (By the way, while Google doesn't use Zope it does use Python. To learn more about Python see the Python sidebar.). A Content Management Server is software specifically designed to help you manage content. What is "content"? Content can be just about anything: Images from your organization's last barbecue, letters you have written using Open Office or MS Word, spreadsheets, presentations, press releases, a calender, you name it: if you or another person are capable of producing it -- it can be labeled "content". Zope provides a platform for making these content management systems accessible to the user. Plone, for example, is an out-of-the-box program that enables users to build portals quickly and flexibly. It is grounded in Zope, which lends it certain essential features such as a built-in authentication functionality. This consists of users, roles and permissions. Users have one or more roles, with each role defining a set of permissions. Permissions are actions in Zope - for example, the right to view a file or to add an object to the Zope site. Since Zope consists of objects (such as folders, files, images,...) it looks like a file-system. Just as with Unix-based systems, you can restrict or grant access on an object level, i.e. for each object in the system you can define who is allowed to do what with the object.
Zope also comes with its own:
Zope comes with ZServer, a Webserver that allows you to access Zope via http (i.e. over a Web browser), ftp (a file transfer program), and a very popular protocol called WEBDAV. WEBDAV allows you, for example, to open a Zope Folder as if it were a regular folder on your desktop, which by extension means you can drag and drop objects between your machine and your Zope server. WEBDAV aside, the most common way to interact with Zope is through its "Through-the-Web" (http) Graphic User Interface (GUI) – called in the literature the Zope Management Interface (ZMI). The GUI allows you to perform a large variety of important operations for Website construction, including managing users, assigning them to groups (which, as mentioned above, can each have different access rights), adding files and creating instances of products. Zope has a built-in database, the Zope Object Database (ZODB). It is a powerful object-oriented database which has become popular even outside the Zope Community. The ZODB is transaction-oriented, which brings with it lots of benefits, including being able to undo actions (via, for example, the Undo Tab in the Zope Management Interface). This allows one, for example, to recover an accidentally deleted file, or to undo a change made to an html page. Thanks to these three components taking Zope or Plone for a test drive is very simple using one of the binary installers for platforms like Windows, Mac OS or Linux. Who Built Zope / Who Builds Zope?Zope was originally built by Zope Corporation or "ZC" (formerly known as Digital Creation or "DC" for short). While the predominant part of all Zope 2.x code was developed by ZC software engineers, the predominant part of Zope 3 code is being built not by ZC but by "the community", companies and volunteers donating their time. (We'll get to more about this later). Zope ProductsIf Zope is a (Web) Application Server and therefore like an operating system, then where are the Zope applications and what are they called? In the Zope world these applications are referred to as Zope Products. There are hunreds of them and it seems every day new ones are added to the list. When people hear the word "product" they usually think of shrink-wrap software that you can buy in the shop and call a hotline number about if you run into trouble. That's not the way it works in the Zope world. Remember: these products are free, so their creators are usually not being paid for creating them. In other words; use them, learn from them, see how they work, but if one of them does not work as expected then all you can do is write a nice email to its creator(s), use their bug tracking software (if they have any), write an email to the appropriate Zope Mailinglist (see Sidebar) or set up a fund on a site like opensourcexperts.com in the hope that some expert will be able to assist you. And if you can't figure out which of the hundreds of products to install check out the Product Reviews in ZopeMag.
The Community Development Model is the engine behind Zope's rapid growth in popularity. Zope's Open Source Code is written both by Zope Corporation employees and by volunteers throughout the world. Frequently developers interested in a particular subject come together for a Zope Sprint. (See this free miniGuide on Zope Sprinting for more details.) Some decision makers are worried about the risks they fear might exist in working with an Open Source-based solution like Zope. They are apprehensive about a lack of support, or worry that there is no one who is willing to accept responsibility if things don't work properly. The truth is, there are plenty of Zope Solution Providers willing to offer varying levels of support (at different response times) for a fee. (Please see the Sidebar). But you may be able to do much of the work yourself using the free help provided by the community. Remember: If you can only turn to one manufacturer for the delivery of your software or solution then you're dependent on that manufacturer. They can, for example, increase their prices whenever they want, they can discontinue a product altogether, stop supporting your solution, and do a lot of nasty things which can result in your having to write off much if not all of your investment in their software. That's risky! With Zope, and the majority of Zope Products, this can't happen to you. Your investment is protected not just because Zope is free, but because Zope is Open Source. You and your developer(s) of choice can modify the code at any time. If, for example, Zope Corporation decides to stop supporting Zope (an unlikely scenario) or goes bankrupt (a hopefully unlikely scenario) then you and the countless Zope users and developers out there can still modify, extend and improve Zope to your heart's content - forever! With Zope you're vendor-independent. Thanks to the contributor agreement, all the software in Zope has a known origin, with an actual signature on file, and it is covered under the ZPL (Zope Public License). Moreover, the joint ownership model means that Zope can be managed centrally without being completely "owned" by a single entity. Thus, the question of "What if Zope Corporation was bought by Evil, Inc.?" is less of a concern for the contributions of non-Zope Corporation employees. A common term in large corporations and industry is "second sourcing". This is an important concept which we would like to explain by an example: Let's say you're a car manufacturer. You need to have more than one supplier for key components of your car so that if one of them can not produce it doesn't cripple your production; further, if you want to expand production, you're not trapped by the limitations a single supplier might labor under. With Zope, in contrast to all commercial applications, you're not bound to a single source when problems arise, the producer of the program. You have people throughout the world who not only work with Zope but who implement the products written for it: there's a good chance that there are people among them who've encountered the same problem you are encountering and have found a solution for it. One might call this "multiple sourcing." Do you have to participate in the community and give back your improvements to Zope? No, you don't have to and it is likely that most people don't. But it's the few that do who really make a difference and who shape the future of Zope. Another thing we would like to mention is that Zope is also "freeware". There are no license fees per user, editor, processor, etc. You can create a CD-ROM and use Zope to present and store all the data, sell a million of these CD's, make a gazillion dollars and not owe anyone a cent. A lot of if's but that's what Zope's public license allows you to do. For example. Let's say you want to remove all Zope components that aren't relevant to your CD. You could change all of Zope's interfaces, including its error messages, and replace them with hieroglyphics, if you want. Suffice it to say that having full access to source code makes you less dependent on a software vendor to fix bugs or add features you would like to see. If you're a programmer you can fix bugs yourself or add features you want or need; if you're not a programmer you can pay a programmer or "Zope Solution Provider" to make the changes for you. Mix and Match What's great about Zope is that you can mix and match as well as replace components according to your liking. If you don't want to keep your data in Zope's built-in database (the ZODB), then compile a database adapter (with Windows you don't need to compile, just unpack the database adapter zip file), connect and store your data in your favorite database (this allows you to employ all the functionality of the database you've become accustomed to). Say you don't want to use Zope's built-in access control list (acl) User Folder and instead use your own Directory Server: if its capable of talking LDAP, all you need to do is install an LDAP Adapter for Zope. This also applies to most of the data stored in Zope. You can choose to store much of it in an external database like MySQL, Postgres or Oracle. Most Database Adaptors are free but eGenix has released a commercial ODBC adaptor for Zope.
Installing Zope Zope can be installed on just about any UNIX, Windows or Mac OS X systems. You can either do a "manual install" or download a ready-made ("binary") installer for your operating system. Go here to download an installer for: Alternatively, if you're interested in Plone, a collaborative Content Management Solution great for building community sites you can download a Plone + Zope combination installer from here for all major operating systems. On the other hand, if you want to run Zope behind Apache, for example, instead of relying solely on Zope's built-in ZServer (Webserver), or like building systems from scratch to learn about them, then read through Chris McDonough's in-depth, approximately 20-page How-to on the subject. Migrating your existing site to ZopeYou're ready to move your existing Website to Zope? ZopeMag has published a miniGuide (subscription required) on this topic. (We haven't yet found a good how-to on this subject but will try to provide links to any documentation that is helpful.) Backup and Import/ExportBacking up a Zope server is relatively easy since all objects are stored in one file, data.fs. When backing up, you should also back up the following directories:
You can also use Zope's export function to back up single folders or objects. The exported file can be stored as a zexp-file, which is a Zope export file with a non-standard format, or as an XML file. Coming in the future Parts of the SuperGuide for Newbies:DTML vs ZPT's (your template language of choice); working with a Zope Hosting Provider; an overview of other Content Management Solutions using Zope, and much more. Help us improve this Part of the SuperGuide for Newbies by sending an email describing your Newbie frustrations and your critical ideas and suggestions to . |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ZopeMag is committed to bringing you the best in Zope Documentation. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag |
|