Post on 26-Jan-2016
description
Special-purpose application servers
Gregor J. RothfussTechnical Director
PostNuke
O’Reilly Open Source ConventionJuly 22-26, 2002
Gregor J. Rothfuss – PostNuke
TOC
• Whats wrong with app servers?
• The product
• The community
• The architecture
• The uses
• The future
• Q & A
Gregor J. Rothfuss – PostNuke
Whats wrong with app servers?
• Supposition: Most programmers suck
• App servers mainly support „good“ programmers
• App servers are too generic, too high level
Gregor J. Rothfuss – PostNuke
Special purpose app servers
• Tenet: Provide cool stuff out of the box
• Libraries alone dont woo anyone
• Provide approaches on several levels– customization (Administration)– skinning (Layout)– addon development
• Examples of this breed:– Midgard, PhpGroupware, PostNuke
Gregor J. Rothfuss – PostNuke
Dedication: Greg Allan
• Greg Allan a.k.a. Adam_Baum, the lead core developer and one of the four founding members of the PostNuke Development Project passed away from injuries sustained in a motorcycle accident. The accident occurred June 16, 2002 near his home in Meaford, Ontario in Canada.
Gregor J. Rothfuss – PostNuke
Product: Some stats
• 500,000 downloads to date
• 20,000 sites running
• 120+ modules available
• 100+ themes available
• PostNuke is IBM Server proven
Gregor J. Rothfuss – PostNuke
Product: Target audiences
• Private persons
• Communities
• Small businesses
• Needs to – be easy to install, admin– have a good support infrastructure– run anywhere
Gregor J. Rothfuss – PostNuke
Product: Why PHP?
• Runs on most ISPs
• Is easy to learn
• Large amounts of legacy code
• Cross platform: PN runs on Linux, Windows, OS 390, Solaris
• Lean & mean
Gregor J. Rothfuss – PostNuke
Product: Core Features
• User management
• Permissions
• Templating
• Modularity
Gregor J. Rothfuss – PostNuke
The PostNuke community
• 200+ developers
• 20 international support sites
• 14,000 registered users
• Bottom line: PostNuke is about building and growing communities
Gregor J. Rothfuss – PostNuke
Architecture: Goals
• provide compatibility for modules
• encourage code reuse
• provide a secure environment
• keep it as easy as possible (but no easier)
Gregor J. Rothfuss – PostNuke
Architecture: Flow
Web (XHTML) RPC (XML)
pnInit pnInit
Sess Lang DB Site
Module(s)
Sess DB
XML-RPC
specific API
Theming
Templates
Gregor J. Rothfuss – PostNuke
Architecture: Components
DB: MySQL, Postgres, MSSQL, Sybase, Oracle
ADODB
Utility Modules PN API
Modules Blocks
Themes / Templating
Gregor J. Rothfuss – PostNuke
Architecture: Module Design
• Separation of User and Admin Functions
• Separation of Display and Operational Functions
• Single Directory Installation
• External Access to Module Functions
Gregor J. Rothfuss – PostNuke
Architecture: Hooks
• Modules can register hooks that will be called on specific events:– Item creation– Item display
• Modules dont know who if anyone will implement their hook
• Examples– Admin notification on user signup
Gregor J. Rothfuss – PostNuke
Architecture : Cron
• Modules can schedule events to occur on a regular basis
• Examples:– Notification mails– Cleanup tasks– Syndication
Gregor J. Rothfuss – PostNuke
Architecture : Permissions
• ACL based on regular expressions
• Supports unlimited groups
• Supports nested groups
• Can be a challenge to understand
• Simpler admin interfaces in development
Gregor J. Rothfuss – PostNuke
Architecture : Syndication
• Exchange site headlines with other sites
• Based on RSS 0.91
• Format supported by hundreds of sites:– Reuters
Gregor J. Rothfuss – PostNuke
Architecture : ADODB
• Based on MS ADODB API principles
• Strive for SQL 92 compatibility
• Remaining quirks: JOIN, Auto-increase fields
• CREATE TABLE is hard..
Gregor J. Rothfuss – PostNuke
armorama.com
Gregor J. Rothfuss – PostNuke
Hagerstown Business College
Gregor J. Rothfuss – PostNuke
Government of Bahrain
Gregor J. Rothfuss – PostNuke
Usage Scenarios
Community WebsitesForums, News, Syndication
Small BusinessesShopping solutions, CMS
Vertical Solutions
pnCommunitypnEducation
Gregor J. Rothfuss – PostNuke
The Future
• support more databases
• make module writing easier
• develop more vertical solutions
• port PostNuke to Midgard• increased scalability• rich applications
Gregor J. Rothfuss – PostNuke
Q & A