Special-purpose application servers Gregor J. Rothfuss Technical Director PostNuke O’Reilly Open Source Convention July 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 SessLangDBSite Module(s) SessDB XML-RPC specific API Theming Templates
Gregor J. Rothfuss – PostNuke Architecture: Components DB: MySQL, Postgres, MSSQL, Sybase, Oracle ADODB Utility ModulesPN API ModulesBlocks 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
Gregor J. Rothfuss – PostNuke Hagerstown Business College
Gregor J. Rothfuss – PostNuke Government of Bahrain
Gregor J. Rothfuss – PostNuke Usage Scenarios Community Websites Forums, News, Syndication Small Businesses Shopping solutions, CMS Vertical Solutions pnCommunity pnEducation
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