a107837282f9b8e556ac537dd8031c00.ppt
- Количество слайдов: 33
Mambo - an architecture-focused evaluation Matthias Ansorg University of Applied Sciences (FH) Gießen-Friedberg 2004 -09 -21
Motivation Why use a CMS? Why evaluate with focus on architecture?
Table of Contents Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Mambo Overview Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Mambo Overview : : First Impressions
Mambo Overview : : Practical Experiences no-problem installation backend overcharges older browser versions Mambo focuses on a lightweight core system, so. . . third-party extensions mostly necessary. E. g. : “Staticxt”, “Contact”, “Weblinks”, “Banners”, “Polls” . . . don't be afraid of extending Mambo yourself. In my case: “Staticxt” rewrite Java. Bean template rewrite the mambot “obfuscator” FAQ component (not yet existing)
Mambo Overview : : The Mambo story 2000: Miro International from Melbourne Victoria (Australia) develops a new CMS 2001 -05: Miro releases “Mambo Site. Server” open source 2002: Miro forks “Mambo 2002” (today: “Mambo CMS”); today 1540 EUR with support 2002: Robert Castley tooks over “Mambo Site. Server” (today: Mambo) 2004 -04 -20: Mambo wins “Linux. User & Developer Award 2004 for Best Linux or Open Source Software” today: Miro sponsors the Mambo Community common extension architecture planned
Mambo Overview : : Mambo as a “real” CMS huge group of open source portal applications: Slashdot Php. Nuke with 12+ forks and clones (Post. Nuke, . . . ) community-centered, not content-centered Mambo stresses to be no portal solution but a real CMS supported by history
Overall System Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Overall System : : Three Tier Architecture
Overall System : : Mambo Elements Overview Template: page layout framework, places Modules and Components. Module: provides extended functionality in a small rectangular part of a page Component: provides extended showing the main content of a page functionality for Mambot: small task-specific function for searching in user-specified data structures; or for modifying content before finally shipped out Language: package for localizing Mambo into one language
Templates Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Templates : : Static Structure a Template comes as a. zip or. tar. gz archive with: css/template_css. css images/* index. php template_thumbnail. png automated template galleries possible (300 templates now) template. Details. xml meta information, used e. g. by the template manager:
Templates : : Meta Information
Templates : : Dynamic Structure
Templates : : Discussion most particular charachteristic: simplicity self-contained (logical, physical) development and configuration: makes the common case simple, skips the rest sticks to the standards (HTML, PHP, CSS, XML) simple metadata access (automated galleries) non-technical developer interface possible advantages vs. TYPO 3 templating system easy to learn, use, configure (no Typo. Script etc. ) easy to develop even without technical skills bug hunting is easy (self-contained, compact) easy to exchange (no dependencies; galleries)
Modules Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Modules : : Type or Instance? what is: abstract type, abstract instance? inconsistent understandings Modules are abstract types (database, developers manual) Modules are abstract instances (Module Manager) what happens when installing a module? 1. abstract type defined 2. one abstract instance created
Modules : : Architecture
Modules : : Mambo powered by Mambo common handling of frontend and backend modules in table mos_modules the more general concepts behind architecture and code reuse in the backend lightweight, slimline system heads towards full frontend / backend analogy it's about writing Mambo in Mambo flaws of consequence (for now) module reuse between frontend and backend not yet possible (cf. mod_pathway)
Components Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Components : : As Compared with Modules user's definition: a Component is a Module that presents the page's content a page may have one Component, but many Modules a menu may link to Components, but not to Modules same user interface with Modules (render area, installation and configuration) same backend / frontend analogy as with Modules developer's perspective: a Component's difference may store data, but Modules are just views thereof has a more elaborated architecture only one instance, but configured for every menu link view of Mambo 5. 0: no difference, as Components and Modules are merged into Mambo Elements (MOSETs)
Components : : Architecture
Components : : The Example of com_staticxt
Mambots Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Mambots : : By Example of mosobfuscator. php
Mambots : : Discussion more efficient architecture since Mambo 4. 5. 1 Mambots are now event-triggered Mambots are included only once for every page however, Mambots are not yet perfect: for “on. Prepare. Content”-Mambots, it is impossible to access content of components other than com_content; so, there is need for more events Mambots seriously disturb the three-tier architecture: they may have tasks from both presentation and processing layer, but are not layered in itself many Mambots introduce new tags (e. g. {moscode} [. . . ] {/moscode}) and expect them in the content; this makes the RDBS layer dependent on the presentation and processing layers
Subsumption of Mambo Architecture Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Subsumption of Mambo Architecture : : Mambo Core three tier architecture model was pragmatically implemented: tier overlaps, blurred distinction HTML in RDBS layer: deprecated dependance Mambots-introduced markup in RDBS layer: as above no tier architecture with Modules and Mambots this will lead to an unflexible CMS clean implementation of a new output format is hard work cross-media and cross-format publishing difficult but Mambo's architectural improvements from 4. 0 and to 5. 0 are big steps, and Mambo Core is lightweight enough to be tidied up even more promising: 2004 -09 -14 release of Mos. XML Alpha 1. 1 (http: //www. ciadd. co. uk/)
Subsumption of Mambo Architecture : : Mambo Elements pros extremely lightweight kernel (5, 4 MByte including all extensions of the core distribution; TYPO 3: >60 MByte) lightweight kernel means, its redesign is probably easy extensions of the core distribution mean, most of the core functionality gets replaceable (see Mos. XML) easy to use templating and extension system cons modularizing Mambo is a process not yet completed frontend pathway is no module com_content is a “favored” component com_menus has undocumented “subcomponents” some components are not uninstallable (com_admin, com_categories, com_checkin, com_content)
Why to Use Mambo and Why Not Introduction Mambo Overview Mambo Architecture Overall System Templates Modules Components Mambots Conclusion Subsumption of Mambo Architecture Should I Use Mambo?
Should I Use Mambo? mixed impressions from the architectural view, through multiple influences on Mambo's architecture: original code base by Miro, commercial quality not yet completed transition from monolithic to “micro kernel” architecture partially pragmatic architectural consequence better witch each extension architecture redesign pre 4. 5 extension and templating system 4. 5 redesign of extension and templating system 4. 5. 1 redesign of Mambots 5. 0 redesign: Modules and Components merge into Mosets but, Mambo is lightweight, modular and vivid, and scores well in a feature evaluation; seems promising
The End
a107837282f9b8e556ac537dd8031c00.ppt