SlideShare a Scribd company logo
Zope and Plone in the DSD David Konerding DSD Group Meeting 3/5/2004
Zope is an App Server Python-based Transactional object database Dynamic HTML (Python-like scripting) Powerful “through-the-web” management and development Tightly integrated security model Can load “products” which add features such as content management Supports WebDAV, XML-RPC, external RDBMS connections, SOAP
Zope is a way of life (your new life begins now) The fundamentals are: Zope is a framework into which you publish objects Zope objects include folders, so you can create hierarchical structures Objects “acquire” (similar to inherit) behavior from their ancestors The Zope object instance hierarchy maps to the URL model
Zope is a way of life (a reading from the Book) Your web browser sends a request to the Zope server. The request specifies a URL in the form protocol://host:port/path?querystring", e.g. http://www.zope.org:8080/Resources?batch_start=100.  Zope separates the URL into its component "host", "port" "path" and "query string" portions (http://www.zope.org, 8080, /Resources and ?batch_start=100, respectively).  Zope locates the object in its object database corresponding to the "path" (/Resources).  Zope "executes" the object using the "query string" as a source of parameters that can modify the behavior of the object. This means that the object may behave differently depending on the values passed in the query string.  If the act of executing the object returns a value, the value is sent back to your browser. Typically a given Zope object returns HTML, file data, or image data.  The data is interpreted by the browser and shown to you.   Zope's seminal duty is to "publish" the objects you create. The way it does this is conceptually straightforward.
Example of constructing a small home page. We already have a place for per-developer pages:  https://bosshog.lbl.gov/people
Imagine I want to add a new page. To enter the Zope management interface (you must have permission), simply add “/manage” to the URL Example: https://bosshog.lbl.gov/people   -> https://bosshog.lbl.gov/people/manage
To add a new folder…
To add a new folder…
To add a new folder…
To add a page to your new folder
To add a new page to your folder
Editing the new page
Viewing the new page
Viewing the new page
Accessing content via WebDAV
Accessing content from WebDAV a
WebDAV Drag and drop files and folders into Zope! In my experience WebDAV is kind of flaky, especially on Windows.  The linux command line client “cadaver” works just fine. There is also FTP support, but it’s currently disabled due to plaintext passwords.
Some other fundamental Zope concepts Acquisition: objects “acquire” (like inherit) behavior from their ancestors.  Many behaviors can be defined at the root of the Zope site and acquired across the site- nice way to provide headers, footers, etc. Security: Zope has a sophisticated, yet hard to understand security model.  Effectively, users are assigned roles and roles have permissions on objects.  Administrative tasks can be delegated to users.  Security ties in with acquisition to allow for very sophisticated access mechanisms
Products add features to Zope Products are Python packages which can be integrated within Zope.  After integration (stop server, copy a folder into the Zope tree, start server), you can add product instances within your site. ZWiki- a Wiki component Plone- a sophisticated Content Management Framework ZSQL VirtualHostMonster
Plone- the ultimate Zope product Plone lives on top of the Content Management Framework product. It allows you to create sophisticated sites with a minimum of work. Easy to add files, manage document publishing workflows (such as author writes document, editor edits it, then reviewer approves it) Wikis (and more plones) can be embedded within a Plone, allowing sub-projects complete control
Our site’s usage of Zope and Zope Products Our external site tree (rooted at  https://bosshog.lbl.gov ) /people /projects DSDCluster – Plone documenting the cluster pyGrid (virtual server published at  https://pygrid.dsd.lbl.gov ) pyGlobus pyGridware /proposals DOERenewals The pyGrid site is actually a Plone, with 2 more Plones and a Wiki inside. Sensitive parts of the site are only accessible by authenticated users (basic HTTP auth over HTTPS). The “true root” of the Zope web site is not publicly accessible, and is only used for administrative purposes
The Python Grid Community Plone (pygrid.dsd.lbl.gov)
Plone example- the pyGrid web site /projects pyGrid pyGridPlone pyGridWiki pyGridware pyGridwarePlone pyGlobus pyGlobusPlone The Plone sites provide news and document publishing- good for publicizing releases The Wiki sites allow community involvement- answering FAQs, showing examples, writing tutorials
Viewing My Folder
Adding a new document
Publishing the document (submit for review)
Publish or Perish

More Related Content

PPT
Ploneforwebdev
PPT
Plone A Content Management System Chitra Mohla
PPT
Developing New Data Types with Plone
PPT
How To Implement a CMS
PPT
Contextual Tour of Plone - (a top open source web content management system)
PDF
WebApp #3 : API
KEY
Building University Websites with the Drupal Content Management System
PDF
WebApp / SPA @ AllFacebook Developer Conference
Ploneforwebdev
Plone A Content Management System Chitra Mohla
Developing New Data Types with Plone
How To Implement a CMS
Contextual Tour of Plone - (a top open source web content management system)
WebApp #3 : API
Building University Websites with the Drupal Content Management System
WebApp / SPA @ AllFacebook Developer Conference

What's hot (20)

PPTX
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
PPTX
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
PDF
Rapidly prototyping web applications using BackPress
ODP
Drupal Webinar
PPS
Open Source Library System Software: Libraries Are Doing it For Themselves
PPTX
Wordpress multisite
PPT
Starting Up a Cost-Free Library Portal for Small-funded Libraries
PDF
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
PPT
August 2011 uPortal Community Call
PPTX
Uniform Resource Locator (URL)
PPTX
User Accounts in Drupal
PPT
Slide 1
PPT
Useful Rails Plugins
PDF
WordPress as a CMS - Case Study of an Organizational Intranet
PDF
Consuming RESTful services in PHP
PPT
Web Servers, Browsers, Server - Browser Interaction, Web Surfing
PDF
Get to Know AtoM's Codebase
PDF
OpenNTF Domino API (ODA): Super-Charging Domino Development
PPTX
One Drupal to rule them all - Drupalcamp London
PDF
5. HTML5
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Rapidly prototyping web applications using BackPress
Drupal Webinar
Open Source Library System Software: Libraries Are Doing it For Themselves
Wordpress multisite
Starting Up a Cost-Free Library Portal for Small-funded Libraries
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
August 2011 uPortal Community Call
Uniform Resource Locator (URL)
User Accounts in Drupal
Slide 1
Useful Rails Plugins
WordPress as a CMS - Case Study of an Organizational Intranet
Consuming RESTful services in PHP
Web Servers, Browsers, Server - Browser Interaction, Web Surfing
Get to Know AtoM's Codebase
OpenNTF Domino API (ODA): Super-Charging Domino Development
One Drupal to rule them all - Drupalcamp London
5. HTML5
Ad

Similar to Zope and Plone in the DSD (20)

PDF
Modern websites in 2020 and Joomla
ODP
A winning combination: Plone as CMS and your favorite Python web framework as...
PPT
Html5 basics
ODP
Introduction to Plone (PyCon Ireland 2010)
PDF
How to start developing apps for Firefox OS
DOCX
CONTENT MANAGEMENT SYSTEM
PDF
Shipping Applications to Production in Containers with Docker
ODP
Some dope on Zope (Jan 2002, Bangalore LUG)
PPTX
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
PPSX
Open writing-cloud-collab
PPTX
PPTX
Exploring Omeka
ODP
Cakefest higher education
PPTX
LVPHP.org
PDF
Week 05 Web, App and Javascript_Brandon, S.H. Wu
PPTX
Pantheon basics
KEY
Drupal in 30 Minutes
PPT
Drupal overview-training
PDF
WordPress modern development
PDF
Introduction To Drupal
Modern websites in 2020 and Joomla
A winning combination: Plone as CMS and your favorite Python web framework as...
Html5 basics
Introduction to Plone (PyCon Ireland 2010)
How to start developing apps for Firefox OS
CONTENT MANAGEMENT SYSTEM
Shipping Applications to Production in Containers with Docker
Some dope on Zope (Jan 2002, Bangalore LUG)
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open writing-cloud-collab
Exploring Omeka
Cakefest higher education
LVPHP.org
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Pantheon basics
Drupal in 30 Minutes
Drupal overview-training
WordPress modern development
Introduction To Drupal
Ad

More from brighteyes (20)

PPT
Our Future and the End of the Oil Age: Building Resilience in a Resource-Cons...
PDF
Alberta's EHR System - PIN
PPT
Amia 00 Curriculum Presentation
PPT
Himss Covvey Departmental Systems Poster
PPT
Waterloo Adv Bd Dec 00
PPT
Waterloo September 00 Presentations
PPS
Mecca Construction Plans for the Future - Kabah
PDF
A I G Systemic Risk2 Tcm385 152209
PPT
Abugharaib Torture
PPT
Expressivism
PPT
Torture
PPT
The World Can't Wait
PPT
Ethics Of Torture
PPT
Marketing to the Islamic World
PPT
ISLAMIC BANKING AND FINANCE: MALAYSIA’S EXPERIENCE AND ACHIEVEMENTS
PPT
Canadian Banks Islamic FINANCE
PPT
Content Management with Plone
PPT
Social Stratification
PPT
Health Care Continuity in Jail, Prison and Community
PPT
Public Safety, Public Spending: Forecasting America’s Prison Population, 2007...
Our Future and the End of the Oil Age: Building Resilience in a Resource-Cons...
Alberta's EHR System - PIN
Amia 00 Curriculum Presentation
Himss Covvey Departmental Systems Poster
Waterloo Adv Bd Dec 00
Waterloo September 00 Presentations
Mecca Construction Plans for the Future - Kabah
A I G Systemic Risk2 Tcm385 152209
Abugharaib Torture
Expressivism
Torture
The World Can't Wait
Ethics Of Torture
Marketing to the Islamic World
ISLAMIC BANKING AND FINANCE: MALAYSIA’S EXPERIENCE AND ACHIEVEMENTS
Canadian Banks Islamic FINANCE
Content Management with Plone
Social Stratification
Health Care Continuity in Jail, Prison and Community
Public Safety, Public Spending: Forecasting America’s Prison Population, 2007...

Recently uploaded (20)

PDF
Family Law: The Role of Communication in Mediation (www.kiu.ac.ug)
PPT
Lecture notes on Business Research Methods
PPTX
Sales & Distribution Management , LOGISTICS, Distribution, Sales Managers
PPTX
2025 Product Deck V1.0.pptxCATALOGTCLCIA
PDF
Solaris Resources Presentation - Corporate August 2025.pdf
DOCX
80 DE ÔN VÀO 10 NĂM 2023vhkkkjjhhhhjjjj
PDF
Satish NS: Fostering Innovation and Sustainability: Haier India’s Customer-Ce...
PDF
PMB 401-Identification-of-Potential-Biotechnological-Products.pdf
PDF
Charisse Litchman: A Maverick Making Neurological Care More Accessible
PPTX
Negotiation and Persuasion Skills: A Shrewd Person's Perspective
PDF
TyAnn Osborn: A Visionary Leader Shaping Corporate Workforce Dynamics
PDF
NewBase 12 August 2025 Energy News issue - 1812 by Khaled Al Awadi_compresse...
PPTX
basic introduction to research chapter 1.pptx
PDF
ANALYZING THE OPPORTUNITIES OF DIGITAL MARKETING IN BANGLADESH TO PROVIDE AN ...
PDF
Booking.com The Global AI Sentiment Report 2025
PPTX
Astra-Investor- business Presentation (1).pptx
PDF
How to Get Business Funding for Small Business Fast
PDF
Introduction to Generative Engine Optimization (GEO)
PDF
Module 3 - Functions of the Supervisor - Part 1 - Student Resource (1).pdf
PDF
Technical Architecture - Chainsys dataZap
Family Law: The Role of Communication in Mediation (www.kiu.ac.ug)
Lecture notes on Business Research Methods
Sales & Distribution Management , LOGISTICS, Distribution, Sales Managers
2025 Product Deck V1.0.pptxCATALOGTCLCIA
Solaris Resources Presentation - Corporate August 2025.pdf
80 DE ÔN VÀO 10 NĂM 2023vhkkkjjhhhhjjjj
Satish NS: Fostering Innovation and Sustainability: Haier India’s Customer-Ce...
PMB 401-Identification-of-Potential-Biotechnological-Products.pdf
Charisse Litchman: A Maverick Making Neurological Care More Accessible
Negotiation and Persuasion Skills: A Shrewd Person's Perspective
TyAnn Osborn: A Visionary Leader Shaping Corporate Workforce Dynamics
NewBase 12 August 2025 Energy News issue - 1812 by Khaled Al Awadi_compresse...
basic introduction to research chapter 1.pptx
ANALYZING THE OPPORTUNITIES OF DIGITAL MARKETING IN BANGLADESH TO PROVIDE AN ...
Booking.com The Global AI Sentiment Report 2025
Astra-Investor- business Presentation (1).pptx
How to Get Business Funding for Small Business Fast
Introduction to Generative Engine Optimization (GEO)
Module 3 - Functions of the Supervisor - Part 1 - Student Resource (1).pdf
Technical Architecture - Chainsys dataZap

Zope and Plone in the DSD

  • 1. Zope and Plone in the DSD David Konerding DSD Group Meeting 3/5/2004
  • 2. Zope is an App Server Python-based Transactional object database Dynamic HTML (Python-like scripting) Powerful “through-the-web” management and development Tightly integrated security model Can load “products” which add features such as content management Supports WebDAV, XML-RPC, external RDBMS connections, SOAP
  • 3. Zope is a way of life (your new life begins now) The fundamentals are: Zope is a framework into which you publish objects Zope objects include folders, so you can create hierarchical structures Objects “acquire” (similar to inherit) behavior from their ancestors The Zope object instance hierarchy maps to the URL model
  • 4. Zope is a way of life (a reading from the Book) Your web browser sends a request to the Zope server. The request specifies a URL in the form protocol://host:port/path?querystring", e.g. http://www.zope.org:8080/Resources?batch_start=100. Zope separates the URL into its component "host", "port" "path" and "query string" portions (http://www.zope.org, 8080, /Resources and ?batch_start=100, respectively). Zope locates the object in its object database corresponding to the "path" (/Resources). Zope "executes" the object using the "query string" as a source of parameters that can modify the behavior of the object. This means that the object may behave differently depending on the values passed in the query string. If the act of executing the object returns a value, the value is sent back to your browser. Typically a given Zope object returns HTML, file data, or image data. The data is interpreted by the browser and shown to you. Zope's seminal duty is to "publish" the objects you create. The way it does this is conceptually straightforward.
  • 5. Example of constructing a small home page. We already have a place for per-developer pages: https://bosshog.lbl.gov/people
  • 6. Imagine I want to add a new page. To enter the Zope management interface (you must have permission), simply add “/manage” to the URL Example: https://bosshog.lbl.gov/people -> https://bosshog.lbl.gov/people/manage
  • 7. To add a new folder…
  • 8. To add a new folder…
  • 9. To add a new folder…
  • 10. To add a page to your new folder
  • 11. To add a new page to your folder
  • 17. WebDAV Drag and drop files and folders into Zope! In my experience WebDAV is kind of flaky, especially on Windows. The linux command line client “cadaver” works just fine. There is also FTP support, but it’s currently disabled due to plaintext passwords.
  • 18. Some other fundamental Zope concepts Acquisition: objects “acquire” (like inherit) behavior from their ancestors. Many behaviors can be defined at the root of the Zope site and acquired across the site- nice way to provide headers, footers, etc. Security: Zope has a sophisticated, yet hard to understand security model. Effectively, users are assigned roles and roles have permissions on objects. Administrative tasks can be delegated to users. Security ties in with acquisition to allow for very sophisticated access mechanisms
  • 19. Products add features to Zope Products are Python packages which can be integrated within Zope. After integration (stop server, copy a folder into the Zope tree, start server), you can add product instances within your site. ZWiki- a Wiki component Plone- a sophisticated Content Management Framework ZSQL VirtualHostMonster
  • 20. Plone- the ultimate Zope product Plone lives on top of the Content Management Framework product. It allows you to create sophisticated sites with a minimum of work. Easy to add files, manage document publishing workflows (such as author writes document, editor edits it, then reviewer approves it) Wikis (and more plones) can be embedded within a Plone, allowing sub-projects complete control
  • 21. Our site’s usage of Zope and Zope Products Our external site tree (rooted at https://bosshog.lbl.gov ) /people /projects DSDCluster – Plone documenting the cluster pyGrid (virtual server published at https://pygrid.dsd.lbl.gov ) pyGlobus pyGridware /proposals DOERenewals The pyGrid site is actually a Plone, with 2 more Plones and a Wiki inside. Sensitive parts of the site are only accessible by authenticated users (basic HTTP auth over HTTPS). The “true root” of the Zope web site is not publicly accessible, and is only used for administrative purposes
  • 22. The Python Grid Community Plone (pygrid.dsd.lbl.gov)
  • 23. Plone example- the pyGrid web site /projects pyGrid pyGridPlone pyGridWiki pyGridware pyGridwarePlone pyGlobus pyGlobusPlone The Plone sites provide news and document publishing- good for publicizing releases The Wiki sites allow community involvement- answering FAQs, showing examples, writing tutorials
  • 25. Adding a new document
  • 26. Publishing the document (submit for review)